Comparing snapshots and small usability feature

Questions about YourKit Java Profiler
Post Reply
kuzmeech
Posts: 7
Joined: Tue Dec 21, 2004 1:48 pm

Comparing snapshots and small usability feature

Post by kuzmeech »

Dear Authors,

Thanks again for doing a great job on YourKit and answering/implementing suggestions promptly. It's a real fun to work with you!

Preface - we have a situation: two branches in one of which we tune performance. We have a need to compare snapshots of "before" and "after" for the same operation to see what was the main reason of change.

It would be very nice to have a feature of "comparing two CPU snapshots" and show differences. This feature exists in JProfiler but (AFAIK) it has a limitation: It's only possible to compare snapshots within the same profiling session.

I wonder what could be the reason for such a limitation.

Also I see that YourKit misses "compare snapshots" feature completely. I know that it's a hefty piece to develop, but it would be very nice to have it some time in the future :).

For the moment I miss CPU but maybe someone misses Allocation snapshot compare?
Vladimir Kondratyev
Posts: 1624
Joined: Tue Aug 10, 2004 7:52 pm

Post by Vladimir Kondratyev »

You can compare two memory snapshots of the same application "run". Please take a look at "File | Compare snapshot with.." or popup menu at snapshot tab.

Regarding CPU snapshots:
it's not possible to do yet. The main reason is that we are not completely understanding how it should work, i.e. what data should be shown. If you have any ideas prease share them with us.
kuzmeech
Posts: 7
Joined: Tue Dec 21, 2004 1:48 pm

Post by kuzmeech »

I guess the result of comparison is the result of intersecting two trees.
Nodes equality considered by Class name [+ Method]

We're comparing primary snapshot with secondary snapshot.

Result is a tree of differences with following cases:
- node existed at the same place, remember change in execution time, calls count
- calls didn't exist (loss in performance)
- calls that have gone (gain in performance)

Resulting view can resemble typical CPU snapshot (collapsable/expandable) and will be showing primary snapshot with "difference tree" applied. A picture how to get secondary snapshot by changing primary snapshot.

- switchable on/off layer of existed calls (colour highlighten to show time gained/lost - the bigger difference - the deeper hue of red or green)

- switchable on/off layer of calls that have gone (name shown on pale green background, "minus" sign in special column)

- switchable on/off layer of calls that have appeared (name shown on pale red background, "plus" sign in special column)

By default all layers are shown.
nirchattop
Posts: 5
Joined: Wed Feb 02, 2005 9:56 pm

Post by nirchattop »

I don't see any API offered for CPU snapshot either. This would have helped us to extract necessary information at (e.g. at an object or method level) and extend to compare between two different snapshots for a specific scenario. Can we expect to have an api for snapshot anytime soon.


Thanks,
Nirmalya
Vladimir Kondratyev
Posts: 1624
Joined: Tue Aug 10, 2004 7:52 pm

Post by Vladimir Kondratyev »

API will be available in the version next after 4.0.

BTW, what information would you like to extract from CPU snapshot? We are gathering reqirement for future API, so your thoughts are welcome.

Regards,
Vladimir
Post Reply