SmartProfiler.CLI 1.1.0

dotnet tool install --global SmartProfiler.CLI --version 1.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local SmartProfiler.CLI --version 1.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=SmartProfiler.CLI&version=1.1.0
                    
nuke :add-package SmartProfiler.CLI --version 1.1.0
                    

SmartProfiler.CLI ๐Ÿš€

A blazing-fast, intelligent C# CLI tool for measuring execution time, memory consumption, and detecting performance bottlenecks in .NET assemblies.

NuGet

NuGet Downloads

๐Ÿ’ผ Project Roadmap Board


๐Ÿ“Œ Features

  • ๐Ÿ› ๏ธ Profile Any Static Method: Just point to your compiled DLL.
  • โฑ๏ธ Precise Execution Timing: Average, min, max durations per run.
  • ๐Ÿง  Memory Consumption Insights: Detect memory leaks and GC pressure.
  • ๐Ÿ” Async/Sync Friendly: Handles both synchronous and asynchronous methods seamlessly.
  • ๐Ÿ“Š Export to CSV: Easy-to-analyze structured output.
  • โšก Cross-Platform: Windows, MacOS, and Linux supported.
  • ๐Ÿ“ˆ Performance Regression Detector (Coming Soon ๐Ÿšง).

๐Ÿš€ Quick Start

1. Clone the Repository

2. Build the Project

  • dotnet build

๐Ÿ—๏ธ How It Works

  • Loads your .dll dynamically at runtime.
  • Locates the fully qualified static method.
  • Executes the method multiple times (default 10).
  • Measures:
    • Execution time (min/avg/max)
    • Memory usage (before/after/peak)
  • Exports detailed CSV reports for analysis.
  • Supports async and Task-returning methods out of the box. No extra configuration needed.

๐Ÿ“ฆ Installation

Install SmartProfiler.CLI globally using the .NET CLI: (Requires .NET 6.0 SDK or higher installed.)

  • dotnet tool install --global SmartProfiler.CLI

โšก Quick Start

Profile the execution time and memory consumption of your C# methods easily.

Example command: smartprofiler --method YourNamespace.YourClass.YourMethod --detailed-memory

  • method: Fully qualified method name you want to profile (e.g., MyApp.Services.MathService.AddNumbers).

  • assembly: (Optional) Specify the path to your DLL if not in the working directory.

  • detailed-memory: (Optional) Enables in-depth memory profiling, including:

    • Heap breakdown into LOH and SOH
    • Count of pinned objects
    • Finalizer queue stats
    • Overall GC memory pressure insights

๐ŸŽฏ Future Enhancements

  • ๐Ÿ–ฅ๏ธ Real-time memory graph visualization (Blazor frontend)
  • ๐Ÿ“œ Multiple method comparison in a single run
  • ๐Ÿ”ฅ Performance regression alerts
  • ๐Ÿ’พ Database integration for long-term storage
  • ๐Ÿงช Built-in stress/load testing module

๐Ÿ™Œ Acknowledgements

Inspired by the need for developer-first profiling tools that bridge the gap between brilliant code and high-performing applications.


๐Ÿ“œ License

MIT License. Use freely. Contribute back. Grow the ecosystem. ๐ŸŒฑ

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.1.0 105 5/4/2025
1.0.1 149 4/28/2025
1.0.0 151 4/28/2025