I have some code which I'd like to do some performance profiling on. Anyone have recommendations for free/open-source java performance profile tools which work well with fantom?
I'm curious if I need to compile with debugging turned on or something... 77% of the time is in fan.concurrent.ThreadPool$Worker.run, the next highest are:
fan.concurrent.Future.set (2.9%)
fan.sys.Method.invoke (2.8%)
fan.concurrent.Actor._work (1.1%)
fan.mystuff.SingletonMap.receive (1%).
Everything else below 1%. I'm sure it's doing work for me :-) just having trouble figuring out where.
Thanks!
tcolarMon 22 Nov 2010
The worker.run time is probably not important (probably the actor event loop).
Try to sort by CPU % instead, more useful.
yachrisMon 22 Nov 2010
VisualVM (at least on the Mac) doesn't allow you to sort by CPU %... its only columns are "Self time \[%]", "Self time", and "Invocations". By default, it sorts by "Self time \[%]". Oddly, when I open the "Settings" panel and tell it to not profile "fan.concurrent.*", it still insists on profiling fan.concurrent.ThreadPool$Worker.run.
yachris Mon 22 Nov 2010
I have some code which I'd like to do some performance profiling on. Anyone have recommendations for free/open-source java performance profile tools which work well with fantom?
Thanks!
tcolar Mon 22 Nov 2010
You can try VisualVM it's quite nice: https://visualvm.dev.java.net/
It's easy to sue and nice.
yachris Mon 22 Nov 2010
Excellent, thanks!
I'm curious if I need to compile with debugging turned on or something... 77% of the time is in fan.concurrent.ThreadPool$Worker.run, the next highest are:
Everything else below 1%. I'm sure it's doing work for me :-) just having trouble figuring out where.
Thanks!
tcolar Mon 22 Nov 2010
The worker.run time is probably not important (probably the actor event loop).
Try to sort by CPU % instead, more useful.
yachris Mon 22 Nov 2010
VisualVM (at least on the Mac) doesn't allow you to sort by CPU %... its only columns are "Self time \[%]", "Self time", and "Invocations". By default, it sorts by "Self time \[%]". Oddly, when I open the "Settings" panel and tell it to not profile "fan.concurrent.*", it still insists on profiling fan.concurrent.ThreadPool$Worker.run.