How can we help you today? How can we help you today?
Andrew H
We have changed the code in ANTS 4 that deals with working out the amount of overhead the profiler incurs: however in all of the builds we've released so far this feature is turned off, so the reported times always include the time added by the profiling code. This is probably something that we'll add as an option so you can switch between the times with and without compensation applied - it's a post-processing step in ANTS 4, so we can calculate the results after the fact. The current implementation does have a few limitations: in particular it only covers overhead added by the method-level profiling and not the line-level code. I'm going to look at improving this but there are some technical issues that make this a hard problem - the two big ones being that the instrumentation alters the behaviour of the JIT (and we can't compensate for that), and that the line-level timing code is now so short that the overhead it applies is highly dependent on the surrounding code, a result of modern processor architectures. There are a couple of other effects the profiler will have that we probably won't be able to compensate for: in particular because more code is being executed and more memory is being accessed, more cache misses will occur which will cause the program to run slower. I don't think we've seen anything in our tests so far for which this is hugely significant, though. / comments
We have changed the code in ANTS 4 that deals with working out the amount of overhead the profiler incurs: however in all of the builds we've released so far this feature is turned off, so the repo...
0 votes
Another new feature of the later versions is a sampling profiler - in this mode the overhead of the profiler is low enough that it can be considered to be effectively nonexistent in most cases. In the instrumentation modes, which capture the most detail, there's effectively no way to turn the profiler on or off: once the JIT has done its work, the instrumentation is in place and can't be changed. Additionally, the profiler would still need to track program state even when it was not measuring timings, which means the main effect of having an 'on/off' switch would be to make the profiler run slower (with the switch in either state). The best way to improve performance is to turn down the amount of instrumentation that is performed - in particular, line-level timings can require a lot of processor time to deal with. Most profilers have an on/off switch in any case to make it possible to limit the final results to a specific time period. ANTS doesn't need this because it has the timeline and the ability to return profiler results for any time period by dragging out a region, so it's possible to just ignore the results from uninteresting times and easy to look at many different areas of the program in a single run. This is particularly aimed at applications with long setup times: it means that it's not possible to make a mistake that would result in the interesting part of the data being lost, and also makes it easy to take a peek at the early data to ensure that the profiler is indeed capturing what's required. / comments
Another new feature of the later versions is a sampling profiler - in this mode the overhead of the profiler is low enough that it can be considered to be effectively nonexistent in most cases. In ...
0 votes
The HRESULT is the interesting part: 0x8007007E means 'the specified module could not be found'. This implies that either the profiler core is not registered correctly, or one of its dependencies is missing. The profiler UI checks the registration before trying to launch any application, so it's more likely that there is a missing dependency. Unfortunately, the error message provides no hint as to what this could be. You can manually reregister it by running regsvr32 on the ProfilerCore dll contained within the ANTS distribution (you'll need to do both the version in the main directory and the one in the x64 directory if you're running 64-bit Windows). I suspect this will probably fail with the same HRESULT, though. The profiler depends on the VC2010 runtime, the detoured dll (shipped with the profiler), mscoree.dll (ie, .NET), psapi.dll and ws2_2.dll (aka winsock). The DLLs are all part of the standard Windows distribution and should be found in your system32 directory. The VC2010 runtime should be installed by the ANTS installer if it's not already present, but you can install it manually from here: http://www.microsoft.com/download/en/de ... px?id=5555 http://www.microsoft.com/download/en/de ... x?id=14632 Note that v5 of ANTS was built with Visual Studio 2008SP1, so you'll need a different version of the runtime installed for that version. / comments
The HRESULT is the interesting part: 0x8007007E means 'the specified module could not be found'. This implies that either the profiler core is not registered correctly, or one of its dependencies i...
0 votes