PerfView Version V1.7 released to the web.
It has been a 9 months since the last public version of PerfView, so today I have updated the PerfView Download location from version 1.6 to Version 1.7.
Here are some of the new features that I think are noteworthy. You can look at the Help -> Release Notes for more information on detailed changes.
- Much improved '(With Tasks) views handles async much better (will improve more in the future as well)
- Added the 'Size' menu and the 'Directory Size' menu item for figuring out where disk space is going.
- Enabled Goto Source for .NET Framework. Will fetch the source code from Microsoft's server so you can see inside .NET framework code.
- Can turn on Network Capture to capture every network packet (See collection dialog box). Rudimentary parsing in the 'events' view
- Net GC Allocations (as well as the original alot-ignore free) now possible for coarse sampling (the default)
- Provider Browser in collection menu for exploring ETW events on the system (can look at manifset)
- PerfView log from time of collection is storted in the etl.zip file and is available from the 'TraceLog' view.
- 'Set As Default Grouping Menu Item' lets you set your default stack viewer parameters.
- In the events' view you can select events and issue the 'Highlight in Histogram' to see where they are visually in the histogram.
Vance
Comments
Anonymous
November 03, 2014
If PerfView can now capture network traffic, we can no longer use it. Our it department does not allow the use of tools that can capture network traffic. Please provide a version without network capturing support.Anonymous
November 03, 2014
@Mathias: Best not let your IT department know about the browser you're using to read this, and its baked in developer tools... or that as a (presumed) developer you can always write your own network sniffing tools.Anonymous
November 03, 2014
The comment has been removedAnonymous
November 04, 2014
Ok, that makes it clearer what the feature does. Capturing only the traffic from my own machine is ok, only tools that capture all network traffic are forbidden by our IT.Anonymous
January 26, 2015
I had a very basic question and I'm hoping you would be able to help this amateur perfView user. when i try to collect data for a w3wp, and double click on cpu stack -> the time and interval is shown in some weird number. really long number. where as the images and tutorials have the unit milliseconds. How do i change this? please helpAnonymous
January 27, 2015
I am not sure what you mean by 'wierd'. The number is in milliseconds, which may make it bigger than you expect, and if you let the collection go for a very long time, it might be a very big number, It you collected for only a modest time (say less than 5 min), then the number should be < 60 * 5 * 1000 == 300,000. If this is not the case, I would be interested in seeing the trace, as it sounds like a bug.Anonymous
February 03, 2015
The comment has been removedAnonymous
February 04, 2015
I have made a note to update the tutorial text. On the last point, I can't reproduce your issue. I assume you know how to select multiple cells by dragging or using the CTRL key. You should make sure that mouse is still in one of the selected cells when you right click (typically this naturally happens, but maybe you are moving the mouse). As long as you see two cells selected, and the stack window has focus I have never seen Alt-R fail. Is there any error in the log?Anonymous
February 10, 2015
The comment has been removedAnonymous
February 10, 2015
The comment has been removedAnonymous
February 11, 2015
Vance, thank you: the locale setting was responsible for the malfunction. If I set the Number Format in "Region and Language" to a language using the U.S. number format perfview works as desired. Is there a way to get perfview correctly running with a different locale (i.e. another number format)? Did I miss something in the documentation? RegardsAnonymous
February 11, 2015
What you discovered is certainly a bug in PerfView. I will attempt to fix it in the next release. It is just that I needed to reproduce and understand the bug. If you find other locale bugs I will try to fix those as well.Anonymous
February 20, 2015
Are you open to the idea of open-sourcing PerfView on GitHub and accepting PRs?Anonymous
February 21, 2015
PerfView and TraceEvent will probably be open-sourced sometime this calendar year. It is work to make this transition, and that work has to compete against all the other work I might be doing.Anonymous
March 12, 2015
The comment has been removedAnonymous
March 12, 2015
I just the dotnetsamples project on github with a bunch of ETW samples using TraveEvent ... but I'm getting the feel that maybe the whole monitoring with etw idea doesn't work well with ETW if there's some sort of limitation. Did I understand correctly that some random app/service can start monitoring kernel stuff with ETW and then my app can't?Anonymous
March 12, 2015
fix typos: I just the found dotnetsamples project on github with a bunch of ETW samples using TraveEvent. I'm getting the idea that maybe the monitoring low level things with ETW idea in real-time with Windows 7 doesn't work well with ETW if there's some sort of Windows 7-limitation. Did I understand correctly that some random app/service can start monitoring kernel stuff with ETW and then my app can't as that other app has the "session". Puzzling design.Anonymous
March 12, 2015
What I'd really like to achieve is this:
- Alert my app if firewall configuration is changed
- If communication is attempted to new address with any protocol, allow me to decide whether to allow communication to that address or not. Optionally I can allow the communication and subscribe to listen to it passively And I'd like to do both in a C# console app in < 20 lines of code... I know that 2) is "impossible" without some low level traffic interception/filter (eg. WinDivert). It would be acceptable to just see the initial communication and then decide to block that address in firewall. This should be possible without having to install any drivers.
Anonymous
March 12, 2015
The comment has been removedAnonymous
March 14, 2015
The comment has been removedAnonymous
March 23, 2015
This is a wonderful tool. I'm having an issue using it, where the .NET application I'm profiling starts to throw exceptions when collecting is turned on. The exception is happening in what looks to be networking related classes in the BCL during web service calls to Dynamics CRM. I have spent a couple hours trying to narrow it down by setting up reference source debugging but still feel like I have a long way to go. Is there anything you can suggest for how to troubleshoot this or what to be looking for?Anonymous
March 24, 2015
Actually it should be very easy to determine what is causing the exception because PerfView turns on the .NET Exception event which includes a stack trace of exactly where the exception happened. This is probably a bug in the framework, so we are definitely interested in getting it fixed. If you place the .ETL.ZIP file you have on my one drive http://1drv.ms/1xoq5bU I can take look. Note that this is probably caused by extra code turned on by a particular provider that PerfView turns on by default. It is likely I can give you a work-around to turn off that provider and thus avoid the failure.Anonymous
March 24, 2015
@Alan M: If you wish to follow up more privately, let me know at vancem@microsoft.comAnonymous
March 24, 2015
Thank you, I've looked into this some more and will follow up by email.Anonymous
June 19, 2015
The comment has been removedAnonymous
June 25, 2015
The intent is these should be in the local culture however WPF does not make this easy (see serialseb.blogspot.com/.../wpf-tips-1-have-all-your-dates-times.html). The code LOOKS like it should work, but your experience proves otherwise. I have logged a work item, but I am not really set up to do multi-language localization tests, so it may be a while.