On 24/03/12 02:44, Zlatin Balevsky wrote: > Wrong. Extracting the log statement into its own method and calling > that method inside the while loop still creates garbage. Stack frames > are different. >
How do you explain the results obtained from running my test code, then? Turn on -verbose:gc. testWithStackAllocation results in no GC, testWithoutStackAllocation results in lots of GC. > Read again exactly how Escape Analysis works. The objects it prevents > from creating do not appear in heap histograms. Take a "jmap -histo > <pid>" and you will see a huge number of java.lang.Integer objects in > the heap, not on the stack. > If you're still talking about your example, this is exactly consistent with my explanation, i.e. that escape analysis is NOT occurring, properly anyway. > The difference in run times of your example could be due to many > things. How many iterations did you run? It may be still in > interpreted mode. Enable -XX:+PrintCompilation and discard any > results until JIT stops printing. Done that, JIT stops printing after the 3rd iteration and results are the same thereafter. -- GPG: 4096R/5FBBDBCE https://github.com/infinity0 https://bitbucket.org/infinity0 https://launchpad.net/~infinity0
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Devl mailing list Devl@freenetproject.org https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl