SmartProfiler.CLI
1.1.0
dotnet tool install --global SmartProfiler.CLI --version 1.1.0
dotnet new tool-manifest
dotnet tool install --local SmartProfiler.CLI --version 1.1.0
#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.
๐ 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
- git clone https://github.com/ndwpatrick/SmartProfiler.CLI.git
- cd SmartProfiler.CLI
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 | Versions 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. |
This package has no dependencies.