Make your .NET app run faster. It's powerful, easy, and free!
Spot slow code
Are you a .NET developer? Would you like your application to run faster? Then use our free profiler to spot you app's slow code.
Point and go
No source code changes are needed. Just point the profiler to your app, run the modified code, and get a visual report.
Speedup any .NET app
As the only code profiler in the world, our profiler can even handle Compact Framework applications.
These are the key features of the EQATEC Profiler.
Optimize speed, not memory usage
The EQATEC Profiler is a code profiler, not a memory profiler. So it's all about making your app run faster, not about tracking objects and memory.
The report will tell you exactly how many times each method was called and how long it took. You can then speedup your application by optimizing just the most expensive methods.
Easy to use
We have focused much on making the profiler and viewer both very easy to use:
You can profile any .NET application with just a few clicks. No source code changes are needed.
The viewer has been designed to make it easy to drill quickly into what really matters: the most expensive methods and their context.
So don't let the simple look fool you - we take pride in not adding tons of useless options, but instead make tools that simply does "the right thing" by itself.
Profile any .NET app (2.0 and above)
You can profile any app, not just your own. Profile NASA's great World Wind app if you want. Or Paint.NET. Yes, any app you want is no problem - just point and go.
Only code profiler for .NET CF
The profiler was developed specifically to optimize .NET CF apps, and is actually the only existing code profiler for .NET CF in the World as of May, 2008.
The report is stored as a simple file to simplify usage on an embedded device that has no network connectivity.
Low runtime overhead
The overhead depends on the instrumentation-level and the application itself, but typically your app will only run 30% slower and become 30% bigger.
This low overhead means you're usually able to run your app just like normal, even for timing-critical code.
A command-line version of the profiler enables you to integrate the profiling-step straight into your ordinary build-process, e.g. in MSBuild.
On a 3GHz P4 PC the profiling step typically takes 1 second per 2000 methods, so that's pretty quick.
You can control the profiler programmatically, too: take a profile-snapshot precisely when needed, not just when your application stops.
You may also use attributes to prevent any method from being profiled or from appearing in the report.
"-and free means crap, right?"
Well, not always. You know, some happy users have actually told us that we ought to charge them for this kind of quality tool. Really, its true!
However, for now we've decided not to.
v1.0 (April 24, 2008)
* Initial release
v1.1 (May 14, 2008)
* Support for generics
* Automatic check for new available versions
* Changed runtime-API from "EQATEC.Profiler.EQATECProfilerRuntime" to "EQATEC.Profiler.Runtime"
* Fixed bug: could produce invalid MSIL-code if a switch-statement caused a direct return
* Improved the following steps:
..... o Signed assemblies are still not handled, but are at least detected and skipped now
..... o Runtime-check ensures that deployed assemblies and runtime-module belong together
..... o Profiling an already profiled assembly is now an error, not just a warning
..... o Non-assemblies (config-files etc) are copied to profiled-folder, too
v1.2.35 (June 12, 2008)
* Focus on making it easier to profile full .NET applications:
..... o Profiling now build a full recursive copy of the application’s folders
..... o A “Run Application”-button can start a profiled full .NET app
* Handle re-signing of signed assemblies (registered version only)
* Finer profiling-control via attributes SkipInstrumentation and HideAtRuntime
* Profiling is faster (3-4 times) and runtime-module smaller (5-10 times)
* Viewer has a subtle navigation history indicator to help your browsing
* Various minor improvements and a forum on our website
* Output-dir is no longer “App\profiled”, but neighbor-directory “App (Profiled)”
* The new EQATECProfilerRuntime.dll module is signed, so any references should use this new one
* Registry-settings stored under local user, not local machine (better approach on Vista)
v1.2.41 (June 17, 2008)
* Skip setget/addremove is gone and replaced by more efficient control
* Ask user what app to run if more than one exe is profiled
v1.2.60 (July 7, 2008)
* Minor fix: if profiling was unsuccessful, but you ran the profiled app anyway, a nullpointer-exception would be thrown. The app now fails with a more informative message telling you to go back and fix the profiling errors.
v2.0.34 (Dec 16 2008)
New major release:
Major new features:
* Much easier to use, especially for full .NET apps
* Profiler/viewer unified into one application
* Take profiling-snapshots "live" for a running app
* Report-folder is now fixed and you decide where it is
Lots of other features and changes, too:
* Save/load settings in named config-files, or just have it handled automatically
* EQATECProfilerCmd now take a dir or config-file as argument
* Specify paths using environment-variables, including $(AppDir)
* Report-files renamed to profiled-exename-timestamp.eqlog
* Full drag/drop-support for report/config-files
* Pass command-args to profiled app
* Window title now displays report-name, if any
* Profiler show list of all saved reports
* Profiler-diagnostics saved to logfile, profiler.log
* Run .Net CF apps directly, too
* Comes with pre-compiled Bubbles-demo
* "Most recently used"-dropdowns for apps, executables, and reports
* Keyboard-shortcuts everywhere (except for call-graph)
* Navigate easy backwards/forward in call-graph
* Timing for full Windows .NET apps now have 1 millisec precision (was 16ms)
* Small averages now shown with one decimal
* Auto-snapshot for .NET Services and ASP NET apps
* Resize parts of window
* Simplified UI and workflow
* Fixed bug: Running a profiled app did not correctly set its working directory
* Fixed bug: F# tail.call was not handled properly; it is ignored for now
* and lots of other minor improvements
v2.0.89 (Feb 11 2009)
Signed assemblies were not re-signed when running the command-line profiler
Certain machines (hardware-dependent) would occasionally give "0" as timing result
* Microsoft Windows
* Smartphone Windows Mobile
* .NET 2.0 and above application