PerfView Changelog

What's new in PerfView 3.1.10

May 3, 2024
  • New stack views for contention and waithandle events.
  • New ASP.NET Core Stats view.
  • Events view now displays an absolute timestamp in addition to relative.
  • GC API fixes.
  • NuGet package dependency fixes.
  • Fix to avoid overflow of /RundownMaxMB.

New in PerfView 3.1.9 (Mar 7, 2024)

  • Provide an option in PerfView to enable/disable truncation of the full raw event in the Events view when selecting “Dump raw event”.
  • Fix the TraceEvent nuspec file to include all dependencies.
  • Trim whitespace when parsing /Providers.
  • Fix live session decoding of self-describing events.

New in PerfView 3.1.8 (Jan 31, 2024)

  • Ensure PerfView.exe exits after closing the main window.
  • Add ETWTraceEventSource.DispatchBehavior to control whether the TaskID is fetched from the event header, or consumed from the hardcoded value in the parser. Used for scenarios where the TaskID is modified by a trace processing tool or when the TaskID otherwise varies.
  • Fix surfacing of RelatedActivityID in real-time sessions.
  • Stabilize root names for heap snapshots.

New in PerfView 3.1.7 (Dec 5, 2023)

  • Properly setting the process.Log to be used by the GC to discern whether the process is running with SVR GC Threads
  • Fix CTF structure alignment issue
  • Show Object Size in for GCAllocationTick Events in Any Stacks
  • Implementation of GC Dynamic Events
  • Capture the Process Name from EventPipe Traces
  • Fixes for Process Dump to GC Dump Conversion

New in PerfView 3.1.6 (Oct 20, 2023)

  • Harden TraceEventSession.ProviderNameToGuid
  • Fixed calculation of Alloc MB / Pause Time in GC
  • New of Microsoft.Diagnostics.Tracing.TraceEvent.SupportFiles
  • Protect Initialization of TraceEventSession Provider Lists

New in PerfView 3.1.5 (Aug 26, 2023)

  • Extensibility support for CtfTraceEventSource mappings. This is to enable custom parsers to register events with CtfTraceEventSource which operates off of event provider/name instead of ETW metadata.
  • Fix computation of background GC pause times.

New in PerfView 3.1.4 (Aug 15, 2023)

  • Update goto source functionality to display both inclusive and exclusive costs. Previously only inclusive costs were shown.
  • Update LockCreated and ContentionStart_V2 events to allow for tracking of lock creation and acquisition of locks by thread.
  • Support for uncompressed embedded source files in PDBs.
  • Support for basic authentication when authenticating to symbol servers.
  • Improvements to the Events view to launch maximized and to increase the number of allowed columns.
  • Various security improvements including building with banned.h (avoid usage of unsafe native APIs), enabling additional binary hardening settings, and switching to secure random number generation.

New in PerfView 3.1.3 (May 18, 2023)

  • Make Linux performance trace parsing more robust.
  • Add support for capturing thread time data via perfcollect within containers.
  • Add support for new instrumented code types generated by the .NET JIT.
  • Fix bug where rundown is much more expensive than it should be.
  • Address a stack overflow bug in TraceEventSession.GetActiveSessionNames.
  • Allow users to specify a rundown file size limit. This is useful in environments with many processes where rundown takes a very long time.

New in PerfView 3.1.2 (Apr 14, 2023)

  • Fixes a bug that causes symbols in stack views to not resolve.

New in PerfView 3.1.1 (Apr 5, 2023)

  • Fixes a bug that resulted in significant degradation of performance in some apps due to very verbose events being enabled.
  • Only refresh stack views when the filter/grouping criteria has changed.

New in PerfView 3.1.0 (Apr 1, 2023)

  • Standardize all TraceEvent libraries to compile against netstandard2.0 only.
  • Switch FastSerialization and TraceEvent projects to produce portable PDBs instead of Windows PDBs.
  • Refactor PerfView dependencies to make them more explicit.
  • Enable certificate revocation when contacting https endpoints.
  • Convert ForceGC functionality to use built-in ETW capabilities and remove ICorDebug code from HeapDump.
  • Cache the DIA class factory used for native symbol lookup.
  • Dispose cached PDBs properly so that they aren’t locked on disk after use.
  • Fix parsing of CTF metadata documents with out-of-order elements in LTTng traces.
  • Several internal and surface area changes to Automated Trace Analysis capabilities.
  • Enable opening of portable PDBs when running TraceEvent on Linux.
  • Parse and consume new GC events, including a new GCSettings event.
  • Fix native image PDB symbol resolution for diagsession files.
  • Enable rundown event collection for GC and Tiered Compilation settings.
  • Enable PerfView to capture the FileVersion fields for all .NET runtime DLLs consumed during trace capture and inject them into the trace.

New in PerfView 3.0.8 (Mar 1, 2023)

  • Add a new collection option /UserCritContention and analysis view for analyzing work done while the UserCrit is held. This is interesting for UI apps that experience visual perturbances.
  • Improvements to how TraceEvent and PerfView handle clean-up of ETW session handles.
  • Movement of utility classes to the Microsoft.Diagnostics.Utilities namespace to avoid namespace collisions.
  • Switch PerfView and TraceEvent to only use documented Win32 APIs. Remove OSExtensions.dll from PerfView and TraceEvent packaging.
  • Remove InternalOnly checks in PerfView which limited features to users on Microsoft’s corporate network.

New in PerfView 3.0.7 (Jan 19, 2023)

  • Fix EventCounter graphing in PerfView.
  • Fix bug in processing of CTF traces from LTTng (Linux).
  • Fix handling of Windows Handle events.
  • Fix the process ID associated with VirtualMem events. This caused some stack views in some traces to contain multiple nodes for the same thread.
  • Add a finalizer for TraceEventSource.
  • Update to ClrMD 2.3.405304 for additional support of GC regions in heap snapshots.
  • Add support for parsing and stack-ifying strace output (Linux).
  • Add support for capturing LBR events.

New in PerfView 3.0.6 (Nov 17, 2022)

  • Add a dark mode theme to PerfView
  • Remove the 10M node limit for ETW/dotnet-trace heap snapshots, allowing for larger heap snapshots without sampling.
  • Expose TraceGC.GenerationCount to allow for discovery of additional generations (e.g. .NET Core).
  • Update to ClrMD 2.2.343001 which contains fixes for capturing heap dumps of .NET Core processes that use regions.

New in PerfView 3.0.5 (Sep 27, 2022)

  • Add goto source support for portable PDBs with embedded source.
  • Fix heap snapshot creation failures due to missing dependency.
  • Add new user command to save CPU stacks as a CSV.
  • Populate captured ETW providers in TraceEventSession instances created via session attach to fix CaptureStateOnSetFileName.
  • Fix minimal rundown in PerfView to properly catch Runtime/Start events from .NET Core processes.

New in PerfView 3.0.4 (Aug 27, 2022)

  • Add authentication support to PerfView for AzureDevOps, GitHub, and Git Credential Manager when downloading symbols and source. Big thanks to Paul Harrington for this!
  • Update to build all projects with Visual Studio 2022.
  • Update to validation of PDB files during symbol resolution when traces are not merged.
  • Unseal AnalyzerIssue to allow for custom fields.
  • Miscellaneous build and CI fixes.

New in PerfView 3.0.3 (Aug 6, 2022)

  • Add a DelegatingHandler optional parameter to SymbolReader constructor to allow for authentication when downloading symbols and source code.
  • Add new RuntimeSku value for Mono.
  • Fix a bug that can cause an exception to be thrown during rundown.
  • Check for alternate line endings when validating source code checksums.
  • Fix failures when running SaveCPUStacks user command.
  • Fix bugs related to the pinned object heap in GCHeapDumer.
  • Add the number of heaps to the GCStats report for each process.
  • Add new values for TieredPGO and ReadyToRun to TieredCompilationSettings.

New in PerfView 3.0.2 (Jul 2, 2022)

  • Allow for complex filtering of events in the Events view. For example, only show CSwitch events for a particular thread: [(NewProcessID == 1024) || (OldProcessID == 1024)]. Documentation for how to use this feature is available in the PerfView Users Guide.
  • Update to ClrMD 2.1. This provides lots of functional and performance fixes for GCHeap dumps.
  • Expose a “Do not shorten frames copied from stack windows” option in the options menu.
  • Properly sort numbers and dates in the Events view when using column sorting.
  • Fix NGEN PDB generation for arm64 .NET Framework workloads.
  • Fix discovery of NGEN images that need PDBs generated during trace zip.
  • Update video links to point to newly archived tutorial videos.

New in PerfView 3.0.1 (Jun 1, 2022)

  • New “Module Version Information” report in the “Advanced” group that displays version information for all loaded modules by process.
  • Properly quote JSON keys for struct values from TraceLogging events.
  • Propagate base TraceEventSource properties from TraceLog to TraceLogEventSource (e.g. pointer size, numprocs, session start/end times)
  • Start versioning FastSerialization to address breaking API changes when multiple versions of TraceEvent are present.

New in PerfView 3.0.0 (Apr 20, 2022)

  • By default, all ETLX files are 64-bit and no longer have a limit of 20 million events.
  • PerfView.exe is now 64-bit by default. PerfView64.exe has been removed from the build.
  • The default grouping for all views is now [group module entries] instead of [Just My App] to help eliminate confusion when interpreting stacks.
  • The default fold percentage of 1% has been removed to avoid situations where CPU time is so heavily spread that most CPU samples show up in the Process node when looking at stacks.
  • Thread time views from nettrace files will now automatically fold UNMANAGED_CODE_TIME and CPU by default to help eliminate confusion when these values don’t properly represent the workload.
  • Add a new Options menu in the UI for user-specific configuration options.

New in PerfView 2.0.77 (Apr 11, 2022)

  • GUI warning pop-up if you attempt to close PerfView during rundown, merge, or zip.
  • Fix GC hole in nettrace file processing.
  • Fix unintentional blocking when streaming from a .NET Core EventPipe session.
  • Remove superfluous ETW flush command when rotating an ETW session file name via TraceEventSession.SetFileName.
  • Ignore the manifest definition for Microsoft-Windows-DotNETRuntime that is emitted into the event stream by .NET 6+ processes, which results in duplicate dispatch of these events.

New in PerfView 3.0.0 Preview 2 (Mar 24, 2022)

  • Fix missing changes to turn on some of the 64-bit file format improvements.
  • Remove missed truncation code path for ETLX file generation in PerfView.
  • Update progress text in PerfView when converting an ETL to an ETLX file.
  • Update and simplify PerfView view group names.

New in PerfView 3.0.0 Preview 1 (Mar 2, 2022)

  • Action Requested: Please try this release and provide your feedback as issues in this repo, so that we can address any bugs and take your feedback into account on changes to the defaults. Please be sure start your issue title with "[PerfView 3.0]".
  • The goal of this and future previews is to allow for testing and feedback prior to an official stable release. There is not a set number of preview releases - this will be determined by feedback and bugs filed.
  • The main reason for incrementing the major version is that there are some changes that will break backwards compatibility:
  • By default, all ETLX files are 64-bit and no longer have a limit of 20 million events.
  • PerfView.exe is now 64-bit by default and PerfView64.exe has been removed from the build.
  • In addition, there are changes to the defaults for some of the views in PerfView. For example:
  • The default grouping for all views is now [group module entries] instead of [Just My App] to help eliminate confusion when interpreting stacks.
  • The default fold percentage of 1% has been removed to avoid situations where CPU time is so heavily spread that most CPU samples show up in the Process node when looking at stacks.
  • Thread time views from nettrace files will now automatically fold UNMANAGED_CODE_TIME and CPU by default to help eliminate confusion when these values don’t properly represent the workload.
  • And of course, there are many other small fixes and improvements. Also notice that going forward releases of PerfView and TraceEvent will be merged together, rather than being posted as separate releases.

New in PerfView 2.0.76 (Mar 2, 2022)

  • Action Requested: Please try this release and provide your feedback as issues in this repo, so that we can address any bugs and take your feedback into account on changes to the defaults. Please be sure start your issue title with "[PerfView 3.0]".
  • The goal of this and future previews is to allow for testing and feedback prior to an official stable release. There is not a set number of preview releases - this will be determined by feedback and bugs filed.
  • The main reason for incrementing the major version is that there are some changes that will break backwards compatibility:
  • By default, all ETLX files are 64-bit and no longer have a limit of 20 million events.
  • PerfView.exe is now 64-bit by default and PerfView64.exe has been removed from the build.
  • In addition, there are changes to the defaults for some of the views in PerfView. For example:
  • The default grouping for all views is now [group module entries] instead of [Just My App] to help eliminate confusion when interpreting stacks.
  • The default fold percentage of 1% has been removed to avoid situations where CPU time is so heavily spread that most CPU samples show up in the Process node when looking at stacks.
  • Thread time views from nettrace files will now automatically fold UNMANAGED_CODE_TIME and CPU by default to help eliminate confusion when these values don’t properly represent the workload.
  • And of course, there are many other small fixes and improvements. Also notice that going forward releases of PerfView and TraceEvent will be merged together, rather than being posted as separate releases.

New in PerfView 2.0.76 (Mar 2, 2022)

  • Fix an issue that prevented symbol resolution in 64-bit processes.

New in PerfView 2.0.75 (Mar 1, 2022)

  • Add native arm64 support for TraceEvent.
  • Fixes /MinSecForTrigger for 64-bit processes to honor a non-default value.
  • Misc UI fixes.

New in PerfView 2.0.74 (Nov 10, 2021)

  • Fixes to path handling for files inside of Windows containers.
  • Expose additional source line information.
  • Provide a mechanism to override SupportFilesDir for SAW deployment of PerfView.

New in PerfView 2.0.73 (Sep 27, 2021)

  • Roll-up through 2021/09/27.:
  • Opt-in 64-bit large GCDump support without backwards compatibility support. This includes some breaking changes in the MemoryGraph project to support structures that cannot be expressed within a 32-bit values.
  • Opt-in 64-bit ETLX support without backwards compatibility support.
  • Notes:
  • Backwards compatibility will be forthcoming coming in a future release. For now, if you choose to opt-in to 64-bit support, you will not be able to open the 32-bit formats.
  • Opt-in is only available for apps that consume TraceEvent directly. There is currently no opt-in mechanism in PerfView. This will be forthcoming in a future release.

New in PerfView 2.0.72 (Sep 16, 2021)

  • Fix crashes from traces containing .NET Alloc data where the object size is reported as 0.
  • Fix an issue where non-Windows traces where TraceEvent attempts to detect if a stack frame comes from the kernel.
  • Fix SYSTEMTIME argument parsing.
  • Allow users to specify the process ID when creating ActivityPath strings.

New in PerfView 2.0.71 (Jul 27, 2021)

  • Fix for unresolvable types from mscorlib in allocation traces that use the PerfView CLR profiler implementation.
  • Enable stack collection for file queries and directory enumerations.
  • Documentation updates.
  • Support for .NET 6 GC PerHeapHistory event changes.
  • Fix Directory Enumeration stacks.

New in PerfView 2.0.70 (Jul 7, 2021)

  • GC generation aware views are now externally visible.
  • New advanced views for file queries and directory enumeration.
  • CLR rundown now occurs synchronously after sessions are stopped to avoid cases where rundown work is captured as part of the actual trace.

New in PerfView 2.0.69 (May 25, 2021)

  • Default to TLS 1.2 for symbol and source server downloads in PerfView (TraceEvent unaffected).
  • Update PerfView’s StateMachineFramework to expose the event registration hook for PerfView extensions.
  • Update SpeedScope writer to fix startValue and endValue writing.

New in PerfView 2.0.67 (Apr 22, 2021)

  • Fixes to IIS event handling.
  • You can now customize collection settings using the collect dialog and then copy the command line to the clipboard using the “Copy Command Line” button.
  • Fixes to rundown to avoid collecting ClrStack/Walk events unintentionally.
  • Expose PerHeapHistory data for the pinned object heap in .NET 5+ in the GC Stats raw XML.
  • Read the maximum number of ETW sessions from the registry instead of assuming a hardcoded value of 64.
  • Performance improvements to RCW handling in GC heap snapshots.
  • OOM recovery improvements to GC heap snapshots.
  • Expose the ability for sessions to set the EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING flag.
  • Miscellaneous documentation improvements.

New in PerfView 2.0.66 (Feb 23, 2021)

  • Disable collection of TPL events by default due to their verbosity. This is configurable via /TPLEvents.
  • TraceParserGen fixes.
  • Fix when parsing fixed-length arrays in TraceLogging events.

New in PerfView 2.0.65 (Jan 26, 2021)

  • Changes that will accrue to consuming CLRMD 2.0
  • Removal of Silverlight support for heap dumps.
  • Removal of HeapDump /dumpSerializedException option for .NET Native heap dumps.
  • Add handling for copying and consuming time ranges with cultures that use spaces as their number grouping delimiter.
  • Fix broken storage and lookup of RelatedActivityID in the ETLX file format.

New in PerfView 2.0.64 (Jan 6, 2021)

  • Add support for advanced memory investigations of the JIT.
  • Include TraceEvent.props in the buildTransitive directory of the TraceEvent NuGet package.
  • Symbol / source file improvements.
  • Remove dotnet.myget.org from the default symbol path, since it has been decommissioned.

New in PerfView 2.0.62 (Nov 10, 2020)

  • Fix PDB discovery for .diagsession files.
  • Enable consumption of merged ETL files when they don’t match TraceEvent’s naming scheme.
  • Parser and GCStats support for the pinned object heap.
  • Numerous spelling fixes.

New in PerfView 2.0.61 (Sep 21, 2020)

  • Support for capturing traces of Windows Process-Isolation containers from the host rather than from inside the containers:
  • Adds /EnableEventsInContainers flag to enable user-mode provides inside containers to send their events to host sessions.
  • Adds /EnableSourceContainerTracking flag to tell ETW to tag each user-mode events that originates from a container with the container ID.
  • Exposes TraceEvent.ContainerID for user-mode events that have a container ID (enabled with /EnableSourceContainerTracking).
  • Enables on-host symbol resolution of containerized DLLs by reaching into the container as long as it is still live, and extracting the PDB information.
  • Adds /ImageIDsOnly flag to the merge command to enable merging on the host and inside one-or more containers to enable symbol resolution off-box.
  • Merge once without this flag on the host, and then merge with this flag inside of each container.
  • Package vcruntime140_1.dll with amd64 native dependencies to fix loading of amd64 msdia140.dll
  • Fix a possible memory leak in GLAD APIs.

New in PerfView 2.0.60 (Sep 14, 2020)

  • Fix TraceEvent NuGet package to include msvcp140.dll and vcruntime140.dll.

New in PerfView 2.0.59 (Sep 5, 2020)

  • Most visible changes:
  • Package msvcp140.dll and vcruntime140.dll alongside msdia140.dll, since the new version of msdia140.dll is dependent on them, and not collection machines.
  • Updated KernelTraceControl.dll to the a newer version to work around reported merge failures.
  • Fixes for Linux trace parsing failures.

New in PerfView 2.0.58 (Aug 6, 2020)

  • Most visible changes:
  • Updated msdia140.dll included with PerfView and TraceEvent to a new version that is compiled with CFG enabled.
  • Updated KernelTraceControl.dll to the latest version which contains fixes too numerous to list here.
  • Fixed /NetCapture failures when the input file name does not end in .etl.

New in PerfView 2.0.52 (Mar 24, 2020)

  • Fixed an issue where ETW stacks contain the wrong thread frame.

New in PerfView 2.0.39 (Mar 22, 2019)

  • 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).

New in PerfView 2.0.26 (Sep 20, 2018)

  • This is a minor bug fix from the previous release. The Start-Stop activity logic had disabled showing AWAIT time. If you use that view, then this bug fix is important, otherwise it is not.

New in PerfView 2.0.23 (Sep 7, 2018)

  • Rollup of bug fixes

New in PerfView 2.0.22 (Sep 7, 2018)

  • 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)
  • Minor bug fixes so that things work inside windows docker containers. This works on windowsServerCore Version RS3 or beyond. PerfViewCollect can be used on windowsNano OS
  • fixed build to support SourceLink for the PerfView/TraceEvent source itself.
  • Added docs for using PerfView in windowservercore and nanoserver containers.

New in PerfView 2.0.15 (May 18, 2018)

  • This is a small bug-fix release of PerfView since the 2.0.12 release. The main interesting feature that was added was support for displaying .NET Core Tiered JIT compilation information (see #679).

New in PerfView 2.0.12 (Apr 10, 2018)

  • This is a small bug-fix release of PerfView since the 2.0.7 release. No interesting features were added, but small bug fixes were made.
  • 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.

New in PerfView 2.0.7.0 (Mar 6, 2018)

  • This is a small bug-fix release of PerfView since the 2.0.2 release. No interesting features were added, but small bug fixes were made. Indeed this release is mostly about just working through the mechanics of a second Github release of PerfView.
  • 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.

New in PerfView 2.0.2.0 (Jan 22, 2018)

  • Added support for SourceLink for 'Goto Source' functionality. Symlink is a technique of finding source files by placing a mapping from built time file name to URL into the symbol file so that the source code can be fetched by url at debug/profiling time. .NET Core annotates all its symbol files this way. The result is that 'Goto Source' on .NET Core assemblies (that is the framework and ASP.NET) just work in PerfView (it will bring up the relevant source).

New in PerfView 1.9.0.0 (Jan 22, 2018)

  • Updated documetation. Preped for release to web.

New in PerfView 1.4.1.0 (May 11, 2013)

  • Added more /StopOn options for stopping the circular buffer when particular events happen.
  • Support for events logged with WPP Software Tracing (place TMF files in an TMF directory)

New in PerfView 1.3.0.0 (Feb 20, 2013)

  • Added new visualizations and tracking modes for WCF and other server code.

New in PerfView 1.2.2.0 (Nov 14, 2012)

  • Background JIT analysis included in the JIT stats view.
  • Wall clock time analysis with a special view for ASP.NET wall clock analysis.
  • Support for unmanaged memory Analysis.
  • Support for heap snapshots of JavaScript heaps in Windows Store applications, including .NET/JavaScript hybrid applications.
  • Ability to take stack traces on every .NET allocation.
  • Updated documentation, including documentation for all of the above updates.

New in PerfView 1.1.10 (Sep 1, 2012)

  • New videos on using PerfView have been added.
  • Duration between start and stop events is available in the event viewer.
  • Added the ability to induce a GC before taking a heap snapshot.

New in PerfView 1.1.00 (Jul 31, 2012)

  • Public release.
  • Fixed bug when CPU sampling is not the default of 1 MSec.
  • Documented The DumpEventsAsXml command.

New in PerfView 1.0.38 (Jul 31, 2012)

  • Fixed it so that PerfView will rundown all EventSources. This makes EventSource symbolic information work in the circular buffer case.

New in PerfView 1.0.37 (Jul 31, 2012)

  • The PerfView videos have now been published on Channel 9. Make the 'Videos' link point to those.
  • Made the help for the build-in user commands have complete descriptions.
  • Fixed a ugly bug in the treeview where collapsing a node would not actualy collapse its children.

New in PerfView 1.0.36 (Jul 31, 2012)

  • Totally reworked Memory dump sampling. Previously it tried to take a sample of large heaps by doing a 'random' walk of graph from the roots. Thus turned out to be too distorting becomes misleading. Instead we have a new very robust technnique which samples the whole heap (live and dead objects, and thus is robust to lost roots or inabiliity to traverse an object), and caputures the WHOLE graph and THEN samples it, GUARENTEEING that we enough samples for EACH TYPE as well as A PATH TO ROOT (dead objects are given a pseduo path) for each sample taken. The viewer then will scale the resulting sample so it 'looks' like a full dump was taken (it is just MUCH faster and smaller). There is still the potential for distortion, but it should be MUCH less now.
  • Made heap dumping significantly faster (sampling now just makes things smaller (and faster in the viewer), you have to traverse the whole heap in order to sample it).
  • Fixed excessive memory useage in some CPU profiling scenarios (this was a regression introduced a couple months ago)
  • Added more support for CPU counters (not quite ready for prime time yet, however).

New in PerfView 1.0.35 (Jul 31, 2012)

  • Took Justin's update that supports looking at many scenarios simultaneously in the Stack viewer. this support is preliminary, but this build does have it.

New in PerfView 1.0.32 (Jul 31, 2012)

  • Support for Combined Windows 8 JavaScript / .NET GC heaps in the memory viewer. This only works for WinMain Windows builds >= 8430 (June 10). If the process has a JavaScript or a .NET heap (or both) they will be dumped (and references from one to the other shown). There is an installation step for the JS dumper (it is on Memory -> Install JavaScript Dumper), and you have to be admin to do the install, and you have to restart any JS app after installation, but from then on it should 'just work. This should work on X86 and X64 machines. It should be straightforward to add ARM support if that is interesting.
  • Added command line to the memory dump selection display
  • Fixed bug where bad command line option was not being highlighted in the GUI (it seemed to simply ignnore the command)

New in PerfView 1.0.31 (Jul 31, 2012)

  • Fixed bugs associated with saving XML or CSV files (crashes).
  • Added ability to sample on the memory stack source. (You will see a 'sampling' textbox for memory) This allows you to trim down the number of memory items so that hte GUI stays responsive)
  • Added preliminary support for the Windows 8 performance counters (instructructions retired, branches taken ... Not ready for prime time yet.

New in PerfView 1.0.30 (Jul 31, 2012)

  • Added Pri1Only checkbox to Memory View.
  • Fixed bug with 64 bit heap dumping.

New in PerfView 1.0.29 (Jun 21, 2012)

  • Improved view for analyzing blocked time (thread time view)
  • Support for .NET 4.5 EventSources
  • Support for writing extensions