Welcome, Guest. Please login or register.
Did you miss your activation email?
September 06, 2010, 05:29:47 PM
Home Help Search Login Register

+  RotateRight Forum
|-+  Zoom
| |-+  Technical
| | |-+  First impressions/wishlist
« previous next »
Pages: [1] Print
Author Topic: First impressions/wishlist  (Read 489 times)
AndrewR
Newbie
*
Posts: 2


View Profile
« on: February 16, 2010, 04:53:00 AM »

I have been evaluating Zoom for just over a week now, and it quickly gave me insights that had eluded me for months, if not years, using variously gprof, oprofile and Intel VTune.  So well done RotateRight, and thanks to MikeDunlavey whose posting elsewhere on the web led me to it!

I should explain that my current interest is in comparing different versions of an interpreter for a functional language.  This inherently involves complex chains of mutual recursion, and C++ inline functions are a further complicating factor.

I've already got quite a long wishlist, however...

1. It was good to have a clear explanation of exactly how the Total columns in the various panes are computed, particularly in the presence of mutual recursion.  I think I understand it, but it would be good to have it in black and white.

2. It would be good if symbols (or other units of granularity) that participate in a chain of recursion were shown distinctively in the profile panes.  (Italics perhaps?)

3. Suppose function A calls function B, and function B in its turn may call A and/or B.  If you select A in the main profile pane, then in the children pane you can see A calling B, you can see B calling B, but you can't see B calling A.  (I can see why you would want to put any scores against A when B calls A, but surely you should show that it happens.)  Conversely, if you select B in the main pane, in the children pane you can see that B calls A, but you can't see that it calls itself.

4. It would be good to be able to open more than one Zoom window, to compare different versions of a program, or the same program running on different remote targets.

5. Please, please, please could granularity be selected independently in the main, parents and children panes!

6. The UI can be rather sluggish.  In particular there can be an appreciable delay between clicking the Start button and the status bar reading 'Sampling...'.  (Maybe I need more memory  Embarrassed.)  Also it would be good to be able to move to a particular position in the main profile list (or other lists) - two-thirds of the the way down, say - with a single click rather than having to scroll.  (Oh, and it's annoying for a right-click to select a line as well as displaying the context menu.)

7. It would be helpful to be able to save the main profile pane to a CSV file.  The 'Export summary...' needs too much munging for this.

8. In the callstack display, call frames are misnumbered when address granularity is selected.  Incidentally (but low priority for me) it would be good in the Trace tab to be able to filter samples exemplifying a particular call pattern.

Keep up the good work!
Logged
Nathan Slingerland
Administrator
Newbie
*****
Posts: 12


View Profile
« Reply #1 on: February 17, 2010, 12:00:04 AM »

Andrew,

Thank you very much for your feedback - we're glad that you found Zoom useful!

RE #1, #2 and #3: We'll extend the documentation and look into ways to draw attention to recursion in a future release.

RE #4: While you cannot currently open more than one Zoom window at a time, it is possible to show two profiles (even the same profile if it has been saved to disk) side-by-side. For example, if you have two profiles open (profile_0001.zoom and profile_0002.zoom), click and drag the title tab of profile_0002.zoom toward the right-hand side (or any side) of the Zoom window. Release when you see the outline of a split workspace.

RE #5: Enabling granularity to be selected independently can be added to a future release. Can you give us an example of how you would use this feature?

RE #6a (sluggish UI): Can you tell us about your system config (Linux distro/version, CPU type, amount of memory). Our goal is for Zoom to run smoothly on any desktop system.

RE #6b (scrolling): It should be possible to use PageUp/PageDown to scroll through long lists. Alternatively, clicking inside the empty space of any vertical scroll bar should jump to that position. I've opened a bug for the right-click = select issue.

RE #7: Would export to XML be equally useful? We can implement exporting to CSV if that's preferable (for importing into a spreadsheet?).

RE #8a (call frame numbering): Thanks for pointing out this bug.

RE #8b (filter by call pattern): Interesting idea - we could allow you to select a sequence of frames in the callstack display and then use the context menu to select hiding of the sequence. Would that work for you?

If you have any additional feedback or suggestions, please let us know.
Thanks again!
Logged
AndrewR
Newbie
*
Posts: 2


View Profile
« Reply #2 on: February 24, 2010, 11:07:46 AM »

Nathan,

Many thanks for your replies.


RE #4: While you cannot currently open more than one Zoom window at a time, it is possible to show two profiles (even the same profile if it has been saved to disk) side-by-side. For example, if you have two profiles open (profile_0001.zoom and profile_0002.zoom), click and drag the title tab of profile_0002.zoom toward the right-hand side (or any side) of the Zoom window. Release when you see the outline of a split workspace.

Ah, yes, that's very useful.

RE #5: Enabling granularity to be selected independently can be added to a future release. Can you give us an example of how you would use this feature?

An example would be looking at C++ inlined functions.  Because they're inlined they're not associated with a symbol, but you can look at samples within a particular header file (i.e. look at all the inlined functions of a class in aggregate).  But it would be useful to be able to see which functions (symbols) calls to this header file were predominantly coming from, and not simply which source file they were coming from.

RE #6a (sluggish UI): Can you tell us about your system config (Linux distro/version, CPU type, amount of memory). Our goal is for Zoom to run smoothly on any desktop system.

This is openSUSE 11.2 running on 2 x 2.8 GHz Pentium 4 CPUs, with 1 GB of RAM.

RE #6b (scrolling): It should be possible to use PageUp/PageDown to scroll through long lists. Alternatively, clicking inside the empty space of any vertical scroll bar should jump to that position.

For me clicking in the trough just pages down or pages up, rather than scrolling immediately to the point clicked at.

RE #7: Would export to XML be equally useful? We can implement exporting to CSV if that's preferable (for importing into a spreadsheet?).

Getting the stuff into a spreadsheet (specifically, OpenOffice) is indeed the objective: whatever cuts it best.

RE #8b (filter by call pattern): Interesting idea - we could allow you to select a sequence of frames in the callstack display and then use the context menu to select hiding of the sequence. Would that work for you?

What I had in mind was: suppose you select a particular great-grandchild within the profile frame.  Then switch to the trace frame, and have the samples displayed be only those that exemplify the selected origin-child-grandchild-greatgrandchild call pattern.  But it was just a thought, not something I could actually make much use of.  But it may be useful to answer 'How on earth can that happen?' questions...

AndrewR
Logged
Pages: [1] Print 
« previous next »
Jump to:  


Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC