perfview

PerfView is a CPU and memory performance-analysis tool

MIT License

Stars
4K
Committers
170

Bot releases are hidden (Show)

perfview - PerfView and TraceEvent 3.1.10 Latest Release

Published by brianrob 6 months ago

Roll-up through 2024/05/02.

  • 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.
perfview - PerfView and TraceEvent 3.1.9

Published by brianrob 8 months ago

Roll-up through 2024/03/07.

  • 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.
perfview - PerfView and TraceEvent 3.1.8

Published by brianrob 9 months ago

Roll-up through 2024/01/31.

  • 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.
perfview - PerfView and TraceEvent 3.1.7

Published by cincuranet 11 months ago

Roll-up through 2023/12/05.

  • 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
perfview - PerfView and TraceEvent 3.1.6

Published by cincuranet almost 1 year ago

Roll-up through 2023/10/20.

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

Published by brianrob about 1 year ago

Roll-up through 2023/08/24.

  • 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.
perfview - PerfView and TraceEvent 3.1.4

Published by brianrob about 1 year ago

Roll-up through 2023/07/31.

  • 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.
perfview - PerfView and TraceEvent 3.1.3

Published by brianrob over 1 year ago

Roll-up through 2023/05/16.

  • 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.
perfview - PerfView and TraceEvent 3.1.2

Published by brianrob over 1 year ago

Roll-up through 2023/04/12.

  • Fixes a bug that causes symbols in stack views to not resolve.
perfview - PerfView and TraceEvent 3.1.1

Published by brianrob over 1 year ago

Roll-up through 2023/04/04.

  • 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.
perfview - PerfView and TraceEvent 3.1.0

Published by brianrob over 1 year ago

Roll-up through 2023/03/31.

  • 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.
perfview - PerfView and TraceEvent 3.0.8

Published by brianrob over 1 year ago

Roll-up through 2023/02/24.

  • 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.
perfview - PerfView and TraceEvent 3.0.7

Published by brianrob over 1 year ago

Roll-up through 2023/01/17.

  • 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.
perfview - PerfView and TraceEvent 3.0.6

Published by brianrob almost 2 years ago

Roll-up through 22/09/26.

  • 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.
perfview - PerfView and TraceEvent 3.0.5

Published by brianrob about 2 years ago

Roll-up through 22/09/26.

  • 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.
perfview - PerfView and TraceEvent 3.0.4

Published by brianrob about 2 years ago

Roll-up through 2022/08/25.

  • 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.
perfview - PerfView and TraceEvent 3.0.3

Published by brianrob about 2 years ago

Roll-up through 2022/08/05.

  • 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.
perfview - PerfView and TraceEvent 3.0.2

Published by brianrob over 2 years ago

Roll-up through 2022/07/01.

  • 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.
perfview - PerfView and TraceEvent 3.0.1

Published by brianrob over 2 years ago

Roll-up through 2022/05/30.

  • 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.
perfview - PerfView and TraceEvent 3.0.0

Published by brianrob over 2 years ago

Announcing the release of PerfView and TraceEvent 3.0!

This release contains many bug fixes, improvements, and changes to default behavior based on feedback. Some of the highlights are:

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

With this release, there will be no future releases of PerfView 2.0.x. Users should expect that future improvements and fixes will be part of 3.x releases going forward.