Optimizing Java

Errata for Optimizing Java

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Other Digital Version 38
last paragraph

"Applying the formula to 2015 commodity hardware gives a theoretical maximum write speed of 8-12 GB/s." The book states.
But in 2015, PC3-17000 RAM reached 16 GB/s even with single channel, and DDR4 RAM is even faster.
When set to quad-channel, it reaches 85 GB/s.

Yong  Jun 03, 2023 
Printed, Page 40
Middle if page

I am confused about statement "function takes 3milliseconds to traverse 100MB chunk of memory"

I don't know where this 100MB comes from. From my calculations we have integer array, where each element has 4 byte size and its size is set to 2097152 which gives 8MB.

And on each invocation it traverses it in touchEveryItem and touchEveryLine.
touchEveryLine only touches 1/16 of elements. So effectively only 8.5MB is traversed each 3ms.

Is this correct? If no where does this 100MB come from?

Dawid  Apr 15, 2022 
Other Digital Version 40
Page 40 Middle of page

The book says: "function takes 3 milliseconds to traverse 100MB chunk of memory, giving an effective memory bandwidth of just under 3.5 GB/s."
But if we divide 100 MB by 3 ms, we get 33MB/ms(=33333 MB/s=32.55 GB/s). The book has the wrong decimal point.

Yong  Jun 03, 2023 
Printed Page 83
3rd and 5th paragraphs

Options listed as 1, 2, 1, and 2 should be A, B, C, and D respectively.

Jason Crease  May 29, 2019 
Printed Page 111
The graphs

The reference to the graphs seem to be wrong. Figure 5-12 is long tailed and figure 5-11 is multi modal. In the book it is the other way around.

Preethi  Nov 01, 2022 
Printed Page 128
Figure 6-5

Diagram appears to have many errors:
1. Box in bottom-right does not have explanation
2. Pointers from stack point to multiple items at once
3. Grey items on stack from figure 6-4 are missing without explanation
4. Lack of green background for 0 item in Eden is unexplained
5. No usage of Thread-local allocation, which his the point of the diagram, is shown.

Figures 6-5 and 6-4 seem to have multiple errors and omissions. They need review.

Jason Crease  May 29, 2019 
Printed Page 206
Table 9-4

invokedynamic is given as having two arguments: c1, 0, 0. It only has two.

Jason Crease  Nov 01, 2019 
Printed Page 220
1st paragraph

'C2 compiler would produce no better code than C2' should read 'C2 compiler would produce no better code than C1'.

Jason Crease  Nov 21, 2019