SuperluminalPerf 1.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package SuperluminalPerf --version 1.2.0
NuGet\Install-Package SuperluminalPerf -Version 1.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SuperluminalPerf" Version="1.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SuperluminalPerf --version 1.2.0
#r "nuget: SuperluminalPerf, 1.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SuperluminalPerf as a Cake Addin
#addin nuget:?package=SuperluminalPerf&version=1.2.0

// Install SuperluminalPerf as a Cake Tool
#tool nuget:?package=SuperluminalPerf&version=1.2.0

SuperluminalPerf build NuGet

<img align="right" width="128px" height="128px" src="https://raw.githubusercontent.com/xoofx/SuperluminalPerf/main/img/logo.png">

SuperluminalPerf is a small .NET managed wrapper around the Superluminal PerformanceAPI.

Superluminal is an outstanding profiler that supports .NET (Core, Framework) applications and provides mixed .NET and Native call stacks.

Features

  • One-to-One mapping with the native Superluminal PerformanceAPI (API Version 3.0)
  • Compatible with .NET 6.0+
  • Provides binaries or source embedding through a single NuGet package

Usage

// Make sure to initialize Superluminal Performance API at the beginning of your app
// By default will try to load the Superluminal dll from Program files default installation path.
SuperluminalPerf.Initialize();
// If Superluminal is not installed in its default path, you'll have to provide an explicit path to the DLL:
// SuperluminalPerf.Initialize($@"E:\Superluminal\Performance\API\dll\{(IntPtr.Size == 8 ? "x64" : "x86")}\PerformanceAPI.dll");

// You can set the thread name
SuperluminalPerf.SetCurrentThreadName("Hello!");

// You can mark code with begin/end markers
SuperluminalPerf.BeginEvent("MyMarker");
Console.WriteLine("Hello World! Wait for 100ms");
Thread.Sleep(100);
SuperluminalPerf.EndEvent();

Running with Superluminal will produce the following markers:

Superluminal Marker Example

Binaries

SuperluminalPerf is available as a NuGet package: NuGet

Source Embedding

SuperluminalPerf NuGet package comes with source included so that you can internalize your usage of SuperluminalPerf into your project. This can be useful in an environment where you can't easily consume NuGet references.

WARNING: Currently, the sources are not set as readonly, so you should not modify sources in that mode as it will modify the sources for other projects using SuperluminalPerf on your machine. Use this feature at your own risks!

In order to activate this feature you need to:

  • Set the property PackageSuperluminalPerfIncludeSource to true in your project:
    <PropertyGroup>
      <PackageSuperluminalPerfIncludeSource>true</PackageSuperluminalPerfIncludeSource>
    </PropertyGroup>
    
  • Add the IncludeAssets="Build" to the NuGet PackageReference for SuperluminalPerf:
    <ItemGroup>
      <PackageReference Include="SuperluminalPerf" Version="1.0.0" IncludeAssets="Build"/>
    </ItemGroup>
    

License

This software is released under the BSD-Clause 2 license.

Credits

Adapted logo performance by Sophia Bai from the Noun Project

Author

Alexandre Mutel aka xoofx.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.3.0 157 9/2/2023
1.2.0 88 9/2/2023
1.1.0 487 3/7/2022
1.0.0 387 5/30/2021