A few reflections on ANTS 3

As I am evaluating the ANTS profiles I'd like to share some feedback on it. I have to say that I am "Quantify damaged" which I consider until today one of the most useful - not the best in every case, yet the one with the best usability.

Right on the first run of ANTS I was missing one basic measure: program run time. It shows in the summary when the app started, and when the data was collected, but nothing like "program was running for hh:mm:ss.mmm", this is quite a basic information to compare performance runs.

One thing I find highly irritating is the fact that when you click on a method name (or filename) it comes up with the source code window and the combo with the method names is selected. This prohibits using the mouse wheel to scroll through the source code. Gets me every time.

I am also missing the link between the source code window and the summary window, it should highlight the selected method in the summary window.

Talking about clicking in the summary window: why can i click on the method name and the filename to get more info, but not on the time in the very same line? This is misleading - the methods are indicated as links, the filenames are not (as are the times) yet they are clickable.

I am also missing some interactivity in respect to shown methods. I'd like to exclude methods from the results while browsing the results, to eliminate irrelevant data for example.

Also I'd like to see results shown in percentages. This is much easier to compare than absolute values.

In respect to comparisms - is there any chance to compare two resultsets? Show differences?

Another thing that somehow is missing is usability with the keybord. One must use the mouse to see data.


  • Thank you very much for your feedback. I am particularly interested in hearing any comments you have about the usability of the product.

    Please feel free to add to your post if you notice or come across any other issues you feel are important.



    Red Gate Software
  • Anothing thing that just tickled me is that the source window shows always the current source.
    This is wrong in the following sense: I run a profile session, check out the results, switch back and forth between VS and ANTS, making changes to the source code. Now, ANTS shows me already the changed source code, but with the measurements of the original source code, so all the lines are out of sync and the result is useless.
    I think the only way around that is taking a snapshot of the source while profiling, or manage the changes (hashing lines for example, diff, etc).
  • Brian DonahueBrian Donahue Posts: 6,590 New member
    Thanks for pointing that out. Every time you open a set of ANTS results, the current source code is read back in again, and it may have changed since the results were generated. I suppose one solution would be to bundle the source in the results file, but there's been some objection to that for IP reasons. Maybe it could be an option...

    I have been working on a really simple application for comparing results, by the way. I tried to email it to you, but of course your email policy wouldn't accept the attachment. I may put it on the FTP site when I think it's good enough.
  • I guess another way would be using the assembly to get the source from. But most probably the only way that avoids all kinds of problems (like what happens when I move classes/methods between files? Remove files? etc) is to really include the source into the result set.

    I'd be interested to test the compare-results application. Send it over whenever you feel like (rename to .pdf or whatever).
  • What I am really missing in ANTS Profiler is the ability to drill-down data. I see the results, I see measures, but it also includes much information that I dont need, or that are irrelevant because I am not focusing on that area, or because I cant/dont want to change it, etc.

    So whats missing is the ability to exclude methods and classes from being displayed. If that would be possible I can for example exlude a method that takes a lot of time, but that is irrelevant for what I want to see. Exluding that method increases visibility of the rest of the results.

    Mix that with percentage display and you get much clearer information for selected areas.
  • In the "All Methods" tab it is quite tedious to "find" methods. Since there is no other navigation mean to jump quickly to a method (like Ctrl+G in the source window or something like that) one has to use the list in the all methods tab.
    But this list does not allow searching or find-by-typing or any other means to locate a method.

    One can use the header grouping to limit what is shown, but then again, the filter on the header grouping does not allow typing (beyond what the standard combo offers).

    Of course one can use sorting and guessing too. Or Find in the source window, if the method is in the same source file.
  • Most importantly - remember the docking location (thats true for all other tabs too)

    I would like to be able to hide not-hit methods from the source window, to minimize information clutter. What good does a method that is not even hit?

    Another great information to show in the source window is the total time and hitcount for every method. While this information is of course available in the All Methods tab, its tedious to find it there while you are browsing the source.

    Optional hiding of the Line column would be also very welcome.

    Entry times showing only 0,0000 might be better not shown at all I think, it does not provide any information (except that the time used was very few) and it clutters the display. Other entries might be overseen (like 0,0800 among some 0,0000)

    Would be also nice if Select All would not jump to the end of the source, so one can copy and then continue where left off.

    When selecting some lines, it would be useful to show the sum of time used of those lines either as a tooltip or in a statusbar field (a la excel). This would allow to get a timing of only a part of a method.

    Another thing that would make browsing easier are clickable method calls. When there is timing information available on a method call, I want to drill down on that method by simply clicking on it in the source window.
  • In the All Methods view I would suggest a slight change in the column sorting:
    Almost always when using the profiler its with the intention to find bottlenecks and optimize code, so I want to see what uses most time, whats slowest.
    When I open the all methods view and click on a column it will sort by this column, but always ascending at first. This is great for alphabetic columns but bad for number columns, as they show what I dont want to see. So I have to click a second time to sort descending.

    I feel that the columns "Time", "Time with children" and "Hitcount" should by default sort descending when first clicked. It would simplify this view.
Sign In or Register to comment.