SpeedTrace Pro – Microsoft® Authenticode® Code Signing

Do not install SpeedTrace Pro if you see this "unknown publisher" warning.

unknown publisher warning.

If you have received SpeedTrace Pro from a third-party vendor and see this warning message, please contact us.

Starting from version 3.4.21 all SpeedTrace Pro versions have a Microsoft® Authenticode® Certificate.

To ensure, that your SpeedTrace Pro copy is from ipcas and it’s not modified after downloading, take a look into the Microsoft® Authenticode® Certificate.

Microsoft® Authenticode® Certificate

Version 3.4.21 with performance optimization

SpeedTrace Pro 3.4.21 - Profiler and Tracer for .NET

The new version of SpeedTrace Pro, 3.4.21 is online for download.
Version 3.4.21 brings performance optimization and some bugfixes.

These are the changes since version 3.4.20:

Enhancements:

  • TraceAnalyzer64: significant start up performance optimization
  • TraceAgent: removed all debug switches from the release (increased JIT compilation performance)
  • increased startup performance

BugFixes:

  • TraceAgent/Trigger: corrected shadow stacks when wakeup time is used

Download SpeedTrace Pro 3.4.21

10-days free trial.
Available for 32-bit and for 64-bit windows operating system.

Update SpeedTrace Pro < 3.4.19

On only some Windows XP Systems with an old Windows Installer (< 4.5), over-installation and update can be with difficulties.

If you want to update a SpeedTrace Pro 3.4 installation smaller then 3.4.19, first uninstall SpeedTrace Pro, please.

Without uninstalling, may be the Windows Installer causes an error.
If you perform an over installation, the Installer does not install all components correctly and SpeedTrace Pro can not start.
Windows Installer malfunction: Windows tries to open the setup .MSI or exe file, but can not find it.

Windows tries to open the setup .MSI or exe file, but can not find it.

After updating an old SpeedTrace 3.4 installation (3.4.19 and smaller), occurs, either the above effect, or SpeedTrace Pro is installed, but behaves weird.

Both effects are result of a Windows Installer malfunction.
Apparently, the MSI-installer has problems to update (overinstall) installations when you deploy assemblies to the GAC.

Apparently, the MSI-installer has problems to update (overinstall) installations when you deploy assemblies to the GAC.

In SpeedTrace 3.4.19 and above we have fixed this with by bypassing the Windows Installer error.

We apologize for any inconvenience with the installing and updating SpeedTrace Pro.

If you still do not use SpeedTrace Pro, try it! 10-days free trial.

Download SpeedTrace Pro - Now!

Learn more about SpeedTrace Pro >>

SpeedTrace Pro 3.4.20 available!

SpeedTrace Pro

We are constantly enhancing and expanding SpeedTrace Pro.
Now SpeedTrace Pro 3.4.20 is available for downloading or via auto update!

( Both for 32-bit and for 64-bit windows operating system. )

These are the changes since version 3.4.18:

New Features:

  • Added VS 2010 addin

Enhancements:

  • Enhanced Local Computer Check
  • Output Storage Validation
  • Application termination – clean up all temporary files

BugFixes:

  • Fix for sporadic callhistory problems in case of parallel jitting
  • Fix for VS linkage versions for versions < VS 2010
  • Data Trace corrections for x64 and also .NET 40

Download now

Learn more about SpeedTrace Pro >>

SpeedTrace Pro 3.4.19 is online for Download

We have enhanced SpeedTrace Pro 3.4.

If you have already installed SpeedTrace Pro 3.4.18, you can get the new update to 3.4.19 fully automated.

Simply navigate to Help > Check for Updates…
Check for Updates

If there are new updates, you will see a window with all available versions.
available update versions

Choose one and click Next to start the download.
update download

After downloading, the normal install process starts.
install update

Auto update will be used only for minor updates, not for major release.

The update check frequency can be configured using the Update Options (Menu: Tools > Auto Updates…).
update option

If you do not yet use SpeedTrace Pro, hurry up and download it!

Download SpeedTrace Pro >>

More about SpeedTrace Pro >>

.NET Multi-threading test scenario /
profiler comparison results

 

Test scenario is a multi-threading test of 100 concurrent threads performing object allocations.
In each test case the threads are started and terminated by the tester program for 50 times.
The test scenario is repeated 15 times.

The test was performed with the following. NET profilers:

  • without Profiler
  • Ants 6.0
  • DotTrace 4.0
  • SpeedTrace Pro 3.4
  • Visual Studio 2010
  • AQTime 6.0

.NET Multi-Threading test scenario / Profiler comparison results: Ants 6.0, DotTrace 4.0, SpeedTrace Pro 3.4, Visual Studio 2010, AQTime 6.0

DotTrace 4.0, Ants 6.0 failed the test because they are not able to present any test results.

SpeedTrace, AQTime and Visual Studio provide test results whereas AQTime adds major runtime (>1000%) overhead,
Visual Studio adds runtime overhead (> 300 %) and consumes much time to show the results.

Only SpeedTrace traces the application without big interference, so accurate results will be presented.

Would you like to reproduce the test? Simple use our ThreadSuspendTester application.

SpeedTrace Pro 3.4.18 with many new features

SpeedTrace Pro 3.4.18 with Automatic update functionality
The new version of SpeedTrace Pro, 3.4.18 is online for download and brings a lot of new features and enhancements.

Features:

  • Automatic Update added
  • Feedback Option added
  • Sort-Column Highlights

Enhancements:

  • Performance optimization for tracing .NET 4 applications
  • Providing large icons for OS >= Windows 7
  • Blackbox overhead calculation

BugFixes:

  • Profiler comparison, fixed problems concerning thread assignment
  • Caller Callee – parents sort

Try SpeedTrace Pro today and experience a new way in .NET development.

Download SpeedTrace Pro 3.4.18

SpeedTrace Pro 3.4.17 is online for Download

SpeedTrace Pro 3.4.17

We are constantly enhancing and expanding SpeedTrace Pro.
Now SpeedTrace Pro 3.4.17 is available for downloading!
( Both for 32-bit and for 64-bit 32 windows operating system. )

Download SpeedTrace Pro 3.4.17

Learn more about SpeedTrace Pro >>

Suspend Tester with SpeedTrace fast and easy

Yesterday we have invited you to test your .NET Profiler & Tracer application.
With this test application (SuspendTester), you can now test the accuracy of your .NET performance tools and also
compare it with other tools available in the market.

It generates extreme multithreading scenarios.

Below, you can find a test done using our all-in-one .NET development solution – SpeedTrace Pro.

Take this experience and see how easy and smooth SpeedTrace Pro handles such extreme load tests.
Fast and easy can SpeedTrace Pro master this test.
How about your .NET Profiler?

Today, we have established a YouTube video channel.
Why not make screen videos of your test with our ThreadSuspendTester application (C# source code) and show us how fast your .NET Profiler can handle extremly multithreadings ?
Provide us your videos or discuss with us!

Try also using SpeedTrace Pro and compare.

Test Your .NET Profiler/Tracer Application

With our ThreadSuspendTester application (see C# source code and downlaod) you can get an idea of the abilities of your .NET testing tool.

Performance analysis with extremely multi threading - ThreadSuspendTest

ThreadSuspendTester is a small test program which records the overhead of .NET profilers or .NET tracers, especially at high concurrency.
The test program starts 100 threads, which in turn make allocations and garbage collections.

If you use SpeedTrace Pro as tracing/profiling tool, you will not detect much difference by the presence of the profiler. In contrast to other tools on the market, the overhead is very small.

Get an idea of your Profiler/Tracer. Compare the result with SpeedTrace Pro – You will be amazed.

Download ThreadSuspendTester.zip (Program.cs) Download ThreadSuspendTester.zip (Program.cs)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Collections;
using System.Diagnostics;
 
namespace ConsoleApplication1
{
    class Program
    {
        static bool terminated = false;
 
        static void Main(string[] args)
        {
            for (int i = 0; i < 15; i++)
            {
                Console.Write(string.Format("Test {0}...", i+1));
                ExecuteTest();
            }
 
            Console.WriteLine("DONE - Press ENTER to exit");
            Console.ReadLine();
        }
 
        private static void ExecuteTest()
        {
            var sw = new Stopwatch();
            sw.Start();
 
            System.Threading.Thread.CurrentThread.Priority = ThreadPriority.Normal;
            GC.Collect();
 
            for (int i = 0; i < 50; i++)
            {
                var threads = StartThreads();
 
                foreach (Thread t in threads)
                {
                    t.Abort();
                    GC.Collect();
                }
                terminated = true;
 
                foreach (Thread t in threads)
                {
                    t.Join();
                }
            }
 
            Console.WriteLine("Done..{0} ms", sw.ElapsedMilliseconds);
        }
 
        private static List<Thread> StartThreads()
        {
            var result = new List<Thread>();
            for (int i = 0; i < 1; i++)
            {
                var thread = new Thread(doNothingTest);
                thread.Priority = ThreadPriority.Lowest;
                thread.Start();
                result.Add(thread);
            }
 
            var thread2 = new Thread(allocTest);
            thread2.Priority = ThreadPriority.Lowest;
            thread2.Start();
            result.Add(thread2);
 
            for (int i = 0; i < 100; i++)
            {
                var thread = new Thread(allocTest);
                thread.Priority = ThreadPriority.Lowest;
                thread.Start();
                result.Add(thread);
            }
            return result;
        }
 
        static void allocTest()
        {
            int j=0;
            while (!terminated)
            {
                ArrayList list = new ArrayList();
                for (int i = 0; i < 1000; i++)
                {
                    list.Add(new Program());
                }
                list.Clear();
                if (j % 1 == 0)
                {
                    GC.Collect();
                }
 
                System.Threading.Thread.Sleep(1);
            }
        }
 
        static void doNothingTest()
        {
            while (!terminated)
            {
            }
        }   
    }
}

More about SpeedTrace >>
Download Now (free evaluation) >>