Comments
Sort by recent activity
We fixed several bugs with identical symptoms during the v6 EAP and beta periods. This specific case was not tested by us as we had no evidence that it was any different from the other cases we knew about, and the EAP feedback that we got was that the issues caused by these bugs were no longer occurring, so there was no reason for us to investigate this specific case.
I have reproduced an issue with Unity 2.0, however. It only occurs if the target application is 64-bit and the profiler is in a line-level mode and seems to be due to an access violation in the .NET JIT. It's possible to work around the problem for now by changing the application target to x86 or by deleting the pdb or switching to a different profiling mode. / comments
We fixed several bugs with identical symptoms during the v6 EAP and beta periods. This specific case was not tested by us as we had no evidence that it was any different from the other cases we kne...
I've now narrowed this down to an issue with the way that the profiler handles assemblies with the SecurityTransparent attribute, combined with a bug in .NET 2's verification of this attribute.
In .NET 4, this will produce a SecurityVerificationException. In .NET 2, nothing happens when using the x86 JIT and the x64 JIT crashes.
This means that you can also work around the problem by removing the SecurityTransparent attribute from any assemblies you want to use line-level timings on. / comments
I've now narrowed this down to an issue with the way that the profiler handles assemblies with the SecurityTransparent attribute, combined with a bug in .NET 2's verification of this attribute.
In ...
You can choose which units to use when displaying times in the View menu.
Note that the SQL and File I/O views always display milliseconds, as their 'ticks' unit is usually different to that used for measuring program performance (which also makes it impossible to show percentages in a way that can be compared with the program timings) / comments
You can choose which units to use when displaying times in the View menu.
Note that the SQL and File I/O views always display milliseconds, as their 'ticks' unit is usually different to that used f...
Hmm, that's odd. The profiler actually won't show the browser window until it sees that it can connect to the port that you've told it to use, so it's accepting at least one connection.
One possibility is that you're seeing an issue with IE that I've occasionally seen. Sometimes (in circumstances that are unclear to me), IE will let you close all of its windows but will continue to run in the background. This also changes its behaviour when opening new windows: they get immediately closed and then redisplayed by the version in the background. To the profiler, this looks like you've deliberately closed the session and it then stops profiling. The solution is to use task manager to kill all instances of iexplore before profiling the application.
Apart from that, I'm not sure what could cause this particular behaviour. Is there any indication in the event log as to why the instance of w3wp that the profiler started stopped working? Does picking a different port to profile on make any difference? / comments
Hmm, that's odd. The profiler actually won't show the browser window until it sees that it can connect to the port that you've told it to use, so it's accepting at least one connection.
One possibi...
You'll need to switch the profiler to wallclock time to see this: in CPU time, all blocking functions are marked as having 0 time. If you're using the sampling mode, the profiler won't distinguish the reason that threads became blocked, so you'll also need to use one of the other modes.
The best way to investigate this issue is to look at individual threads of interest using the all methods view: the time spent blocked will appear as orange methods. You can investigate which methods are responsible for particular types of blocking using the call graph.
The new green 'method event' bars shown in the timeline can be helpful as well: these will show you exactly when blocking was occurring, and you can click them to analyse only what the program was doing during that time. The tooltip for these bars can be used to determine which thread a particular method was running on as well.
It's possible to use the 'all threads' display to look at this as well, but the display is harder to interpret: the profiler adds up time spent in methods executing in parallel as if they were executing in series, so idle threads tend to appear to contribute too much time to the total. / comments
You'll need to switch the profiler to wallclock time to see this: in CPU time, all blocking functions are marked as having 0 time. If you're using the sampling mode, the profiler won't distinguish ...
Hmm, this doesn't look like something directly caused by the profiler: these errors are coming from the C# compiler, which the profiler doesn't invoke itself.
Does your service invoke the C# compiler?
Are these errors coming from the UI or the service that you're profiling?
Does this problem continue to happen if you delete the PDB files for the service?
It looks like another possible solution would be to add permissions for your service user to read and create files in C:\Windows\Temp. / comments
Hmm, this doesn't look like something directly caused by the profiler: these errors are coming from the C# compiler, which the profiler doesn't invoke itself.
Does your service invoke the C# compil...
Does your application do any work with sockets, either directly or indirectly? (eg, does it access a remote database server or use something like WCF over the network?)
One of the most elusive problems that we've seen is that some people get reliable crashes when socket code is hit, but it's not something we've ever been able to reproduce here. My suspicion is that the problem is due to a conflict with third-party software of some kind which also wants to instrument the socket calls (which probably means an anti-virus or firewall product), though I haven't seen any firm evidence for this yet.
The v6 EAP might be worth a try as well to see if the problem has been fixed there. / comments
Does your application do any work with sockets, either directly or indirectly? (eg, does it access a remote database server or use something like WCF over the network?)
One of the most elusive prob...
There should be a new EAP up now.
We haven't updated the VS2010 add-in in the current version, though we will for the final release. The current release should fully support .NET 4, including the new attach to process functionality.
Version 5 of both profilers will work with .NET 4 projects, but use a compatibility mode. / comments
There should be a new EAP up now.
We haven't updated the VS2010 add-in in the current version, though we will for the final release. The current release should fully support .NET 4, including the n...
If this works on v6, it sounds like a bug we've already fixed, though I'm not sure which one.
Does the application itself start, or does the profiler just get stuck? One possibility is that the executable is starting up and then not getting any further, so check if it's running in task manager or not.
I know of a rare issue where if a profiled application gets detached from the profiler UI, future applications will take around 30 seconds to initialise (which gives the impression that they're not starting at all). Shutting down the originally profiled application will fix the problem.
Do you see a 'cannot CoCreate profiler' message in the system event log? If the application is starting but the profiler fails to initialse for some reason, this will happen. / comments
If this works on v6, it sounds like a bug we've already fixed, though I'm not sure which one.
Does the application itself start, or does the profiler just get stuck? One possibility is that the exe...