Win a copy of Rust Web Development this week in the Other Languages forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • Ron McLeod
  • Liutauras Vilda
  • Jeanne Boyarsky
Sheriffs:
  • Junilu Lacar
  • Rob Spoor
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Tim Moores
  • Jesse Silverman
  • Stephan van Hulst
  • Carey Brown
Bartenders:
  • Al Hobbs
  • Piet Souris
  • Frits Walraven

Optimizing Java: who can benefit from reading this book ?

 
Ranch Hand
Posts: 146
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Dear Sir,

Can you explain me for whom (I mean IT professionals) is your book written ?

Thanks.
 
author
Posts: 58
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Ludoviko,

The book is aimed at intermediate & above Java devs (or architects) who want to understand performance better. It isn't about tips & tricks - but instead attempts to introduce performance analysis & optimization as a quantitative subject - and one which is really quite different from software development.
 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Ludoviko,

I would add that the book is also useful who developers who want to better understand how the programs they write in high level JVM languages like Java actually execute under the hood of the virtual machine.
 
ludoviko azuaje
Ranch Hand
Posts: 146
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Ben Evans wrote:

The book is aimed at intermediate & above Java devs (or architects) who want to understand performance better. It isn't about tips & tricks - but instead attempts to introduce performance analysis & optimization as a quantitative subject - and one which is really quite different from software development.



As you know the JVM is changing a lot lately, Oracle is delivering new versions at a very fast pace. My question is performance analysis is a fundamental analysis or it may be afected deeply by new jvm releases. I guess this a broad question -I  have no clues, though-, I appreciate any ideas from your experience.

Thanks.
 
Ben Evans
author
Posts: 58
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
That's a great question! The biggest performance change that I see is the arrival of the new Graal JIT compiler (and GraalVM) - it's still experimental but it has some amazing possibilities.

Not least of which is that the current compiler C2 (aka "server" compiler) is essentially a local maximum of performance, and is at the end of its design lifetime. Graal gives the opportunity to break out of that local maximum and move to a new, better region (& rewrite a lot of what we thought we knew about VM design and compilers).

It's still experimental tech though - I think it won't be fully mainstream for several more years.

However, the principles and the ideas in "Optimizing Java" are still valid & much of what we talk about is still as important (& maybe more important) when using Graal. It's not tied to any particular Java version.
 
ludoviko azuaje
Ranch Hand
Posts: 146
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Ben Evans wrote:Hi Ludoviko,

The book is aimed at intermediate & above Java devs (or architects) who want to understand performance better. It isn't about tips & tricks - but instead attempts to introduce performance analysis & optimization as a quantitative subject - and one which is really quite different from software development.



How do you introduce performance analysis and optimization as a quantitative subject ?

Do you use -simplified- mathematical models ?

Thanks.
 
Ben Evans
author
Posts: 58
5
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
We provide a simple introduction - really an attempt to get people thinking about the need for careful handling of statistics & data - and the need to do top-down, not bottom-up profiling & to be aware that many JVM observables are not normally distributed.

We also recommend: "Statistics for Software" - https://www.paypal-engineering.com/2016/04/11/statistics-for-software/ as a great resource for people who want more of a mathematical approach.
 
ludoviko azuaje
Ranch Hand
Posts: 146
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Dear Sir,


How do you gauge performance as a quantitative subject ?

Which tools do you use to achieve that goal ?

Are those tools available in widely accepted IDEs such as Eclipse, Netbeans, Intellij Idea, etc ?

If not, are they at no cost available ?

If not, do you give insights for building such tools ?



Thanks.




 
Chris Newland
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Ludoviko,

One of the best tools for quantitatively measuring Java performance in a statistically robust manner is of course JMH (Java Microbenchmark Harness) which is part of the OpenJDK code-tools project: http://openjdk.java.net/projects/code-tools/jmh/

It has been carefully designed with features that allow the benchmark writer to avoid common pitfalls such as having the JVM eliminate code under measurement through dead code elimination optimisations.

JMH is used throughout the book to illustrate behaviours of the language and the JVM.
 
Ben Evans
author
Posts: 58
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Chris is right - JMH is a great tool, when used within its domain of application.

However, one of the main lessons of the book is that you must not just blindly apply tools (and it's almost always wrong to build your own tools) - understanding what you want to measure & what is important to your app is the first step (& where a lot of people get it wrong).

In most cases, the problem in your application will not lie in a small section of code that JMH can measure - it will be something external - e.g. Hibernate, slow I/O, unresponsive remote service, etc.

 
ludoviko azuaje
Ranch Hand
Posts: 146
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Dear Sir,

Definitely, Optimizing Java is a must-read for any Java developer who wants to get useful insights about Java performance.

Thanks-.
 
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
reply
    Bookmark Topic Watch Topic
  • New Topic