This is mostly a bug fix release from the 2.0.26. However there are a few small new features:
- Update to display the type of the alloction for C++ code (in the Net OS Heap Alloc View).
It is now the case that if you have PDBS for the call site of a C++ 'new' expression and that compiler
supports it (I believe anything after VS2017 CPP compiler will work), then PerfView will create a 'Type XXX'
pseduo-node for allocation sites. Having this type information can definately be useful.
- Added the /focusProcess=ProcessIDOrName qualifier (e.g. focusProcess=PerfView.exe) This allows you
to only turn on non-Kernel events
for a particular process, and thus cut the overhead / size of the collection when there are many
active processes on the system.. Note that it does not have an effect on kernel events (which are
often the most common, but not always), so it may not help as much as you would like, but DEFINITELY
helps during rundown (if you have many managed processes, they all do rundown which can be impactful).
So it always helps when there are many managed processes (because of rundown) but can help quite a lot
if many of those processes allocate a lot, or use the threadpool (which both can create many events).
- Added support for the /SessionName=XXXX parameter which renames both the user and kernel
session names that PerfView uses (which allow you to have two PerfView's running or run
with other tools that use the kernel provider)
- Added the /DotNetCallsSampled command line option that does call instrumentation
but samples every 997 calls (to keep overhead low)
- Added the /DisableInlining command line option that tells the runtime not to
inline (used with the /DotNetCalls or /DotNetCallsSampled options)
- Added the user command 'NetperfToSpeedScope netPerfFileName' which will convert a .NET *.netperf file
(created by the .NET Core runtime), into a *.speedscope file which is the format that the
https://www.speedscope.app/ tool can use (this is a flamegraph viewer).
To get the tool simply download the PerfView.exe executable and use it. I include the PDB files in case you need to debug something, but that is a rare case and you don't need to do that normally.
The PerfView64.exe is optional. It is a small wrapper that launches PerfView as a 64 bit application. If you are dealing with very large traces that cause 'out of memory' errors, this can be used to avoid the problem. Note that you need PerfView.exe to be present next to PerfView64.exe for it to work.
Like all versions of PerfView you can see the specific release notes from the past year by accessing the 'Help -> Release Notes' menu entry.
You can also see detailed informational about what changes went into this release by viewing the Github history.