Idea performance analysis?
Good day,
I have been playing around with various command line tweaks for Idea but my experience has been more qualitative than quantitative.
I noticed that NetBeans did an analysis of their client with a number of different command line options to determine the most optimal for their app. While this works for their app, each app is different. Has anyone at JetBrains performed or considered performing a series of tests like the ones outlined in the following link:
http://performance.netbeans.org/reports/gc/
Thanks,
Sean
Please sign in to leave a comment.
Sean,
I doubt that measuring GC delays at startup reflects real life apllication's
interaction with the heap. And though it would be really interesting to
investigate the impact of different GC settings on the application GC
pauses, I think the search space is too huge to try every setting possible,
so additional information is required. Probably the report you've posted is
a good starting point.
Once we have enough resources to try this=)
Friendly,
Eugene.
"Sean Garagan" <no_mail@jetbrains.com> wrote in message
news:28697948.1074695004571.JavaMail.itn@is.intellij.net...
>
my experience has been more qualitative than quantitative.
>
different command line options to determine the most optimal for their app.
While this works for their app, each app is different. Has anyone at
JetBrains performed or considered performing a series of tests like the ones
outlined in the following link:
>
>
Hi Eugene,
I agree, the GC performance at startup is a very small impact of the overall performance.
I understand the resources issue and I'm glad that the article is at least a starting point.
Thanks for the response, keep up the good work :)
Sean
I've been playing around with this lately, but haven't got any decisive results. One thing I noticed is that a larger young generation helps a bit. Here's my current settings:
The MinHeapFreeRatio and MaxHeapFreeRation are unusual. I'm using such "tight" settings because I'm short on RAM and I want to avoid heap enlargement and shrink it as soon as possible. That causes more GC activity, but at least keeps memory usage on par.
The NewRatio and SurvivorRatio setting tells the JVM to use a larger young generation and survivor spaces than the default (the default is 8 for NewRatio and 32 for SurvivorRatio, which means the young generation is 1/8 total of the total heap size and each survivor space is 1/34 of the young generation). Enlarging the young generation and the survivor spaces means the objects will live in the young generation for a longer time, avoiding full garbage collections (the "stop the world" ones).
YMMV, of course ^^ the above settings are aimed at doing fast garbage collections (even if this means collecting more times) and tight memory comsuption (ie, avoid a large unsed heap). If you got more memory to space you may try completly different settings.
On 2004/01/21 15:23, Sean Garagan wrote:
Thanks for the link, it pointed me to the "-Xverify:none" option. On my
machine using that shaves about 5 seconds of the startup time of IDEA.
Starting IDEA including the loading of my project now only takes 30
seconds (I should stop wasting my time like this...)
Bas
Nice!
I used the TaskManager's process tab (CPU Time / process) to measure startup improvement:
Opening IDEA and loading project 19 secs with my regular options and 16 secs with -Xverify:none. It makes perfect sense that turning the bytecode verification off makes start up faster. (It's supposed to affect only downloaded code but maybe IDEA uses some custom classloaders that are subject to bytecode verification)
1,6GHz P4 Mobile with 512MB