Profiling application on client's computer

We have developers license for ANTS Profiler 4 and using it in your company. But we need to discover the bottleneck on client's computer (something takes enormous time to finish a job).

Is there a solution to run profiler (and a customer could understand - how to run it :) ) on this computer and then analyze results in your company? I must say we also use ngen and obfuscator and your internal company policy would allow a developer version to be installed on a computer outside the company.


  • Hi,

    ANTS is sold on a per user basis so a license would be need if ANTS was going to be used on a long term basis.

    However, as a workaround the client could simply download the 14 day profiler demo and profile the application and highlight/bookmark the regions in time that are of interest. They can save the results and send you the results file which you can then examine with your copy of ANTS to solve the issue.

    I would recommend downloading the following early access build as it has some additional flags to deal with NGen: ... .0.154.exe

    There will be no line level timings however due to the code being obfuscated but there's nothing we can do about this. The client would need the source files on their computer in order for the profiler to pick up on this.

    Hope this helps!

  • And is there a user-friendly way to distribute the profiler? I mean, the customer will not probably know how to run profiling or at least, it will be very difficult for him. Is it possible to create a bat file which will run ANTS Profiler, starts profiling, save it and for example call our app to upload results to our server ? Installing and establishing profiling session is not as easy as it might seem :) (Imagine your grandparents doing that :) )

    The greatest feature would be a lightweight profiler without UI that just run appropriate application and save results :) Dont you plan it?
  • Bart ReadBart Read Posts: 997 Silver 1
    Hi there,

    As Stephen suggests, this is going to cause you a bit of a headache anyway because your code is obfuscated and the client won't have source on their machine, so you'll only get method level timings anyway.

    My first suggestion therefore would be to try to recreate the problem on one of your own test systems; you may need to ask the client for more information, or maybe some data or other inputs they're using that manifest the problem.

    In the second case, if you still want to run the profiler on their site I'd suggest sending them a project file that will configure the profiler appropriately to work with your application. For a standard executable this should be very simple.

    Before going any further this assumes that your software is an executable and that it is installed to a standard location on the client's machine, which matches the location where it's installed on your machine. If not you'll need to manually edit the exported profiler project file (which is just XML) and update the path to the executable as appropriate before sending it to them.

    Anyway, here are the steps:

    1) Start ANTS Performance Profiler and set it up to profile your application. Once you've done this hit Start Profiling to verify that everything is working properly. If everything's fine click Stop Profiling. Now click File > Save Project and save out your performance profiler project to an appropriate file. Open the project file in Notepad or similar and edit the path to your application if necessary (you can't do this in the profiler itself because ANTS Performance Profiler attempts to verify the existence of the file on your machine).

    2) Send your customer the ANTS Performance Profiler project file and ask them to save it somewhere on their hard disk.

    3) Have them download and install ANTS Performance Profiler.

    4) Once this is done ask them to open the project file on their hard disk (just double-clicking in Windows Explorer is fine and will cause the profiler to open the project file).

    5) When ANTS Performance Profiler opens the project it will pop up the setup dialog. At this point all the customer needs to do is click "Start Profiling" and your application should start up. If this button is disabled it means something is wrong with the settings; most likely the path to the application is wrong. Either you or they will need to correct it.

    6) Your application should start running. Have your customer do whatever it is that causes the performance problem and then when they've done everything they need to, just exit your application.

    7) Once ANTS Performance Profiler has finished summarising the results, which will probably just lead to a tree consisting entirely of root nodes because there's no source code, ask them to click (in the profiler) File > Save Profiler Results.

    8) They should give the file an appropriate name, and then send it to you. It's likely that it'll be too big for email so you may need to set up some FTP access for them, or just have them burn it to a CD and post it to you.

    9) Once you have the results, open them up and then, in the toolbar beneath the tree select "Top Down (any method)" in the left hand dropdown. You should now find you can drill into the tree; this won't work with the default view because, apart from the roots, it shows only methods with source.

    10) Switch to the methods grid and select "Any method" from the dropdown on the left, again, because otherwise you won't see anything interesting.

    It is a bit laborious, as you say, although I don't think it's particularly tricky at any point. I'd still say that definitely the best thing to do is try to reproduce the issue on one of your own machines with a debug build of your software, although I'm only too aware of how difficult this can sometimes be.

    Hope that helps.


    Bart Read
    Principal Consultant Ltd
  • Hi,

    Just to add another point -

    As a really easy solution you could use any number of ways/software to simply remote desktop into their computer and either do the necessary actions yourself or walk them through it and then get them to send you the file as Bart mentioned.

    That way you can take the grandparents out of the equation so to speak and get the data you need easily.


Sign In or Register to comment.