Archive for the ‘Software test/testing’ Category

SpeedTrace Pro 4.0.32 supports ReSharper 6.1 integration

SpeedTrace Pro 4.0.32 available for download!

SpeedTrace-Pro: Test Automation System

New in Version 4.0.32:

Enhancements:

  • supports ReSharper 6.1 integration
  • improved trace session manager

Bug fixes:

  • fix: improved profiler overhead calculation
  • fix: thread assignment

Try the .NET Tracer and Profiler SpeedTrace Pro 4.0.32 today (available as 32-bit and 64-bit version).

Request a 10-day free trial license >>

If you need software test automation, you need SpeedTrace Pro!

 

SpeedTrace Pro stands for supreme stability and reliability.

SpeedTrace Pro: fast, stable and reliable

A few weeks ago we invited you to test your .NET Profiler & Tracer application.
With the test application SuspendTester, you had the opportunity to create an extreme multithreading test scenario.

SpeedTrace Pro has masted this test fast, easily and reliably.

We have received a lot of positive feedback, and some people followed our invitation to give video answers. Thanks a lot!

But see for yourself how SpeedTrace Pro left it’s major competitions way behind!

SpeedTrace Pro 3.4

Ants 6.0

DotTrace 4.0

MS Visual Studio System Profiler

In our test lab we have repeated the test scenario 15 times and have come to the same results.
For stability and reliability, you just can’t beat SpeedTrace Pro!

dotnet-multi-threading-test-scenario-profiler-comparison-results

SpeedTrace Pro is a fully matured product which is able to resolve the root cause of problems ranging from general runtime to performance problems.

Stabilility/Reliability:
Check out the video comparison above and decide oneself.

Quality: Highly accurate results due to lowest profiling overhead of its fast trace engine (In the above videos you can see the runtime overtime raised by the various tools compared)

Traceability/Trace-Empowers Principle: SpeedTrace Pro records and stores detailed information of
application events for later reference with respect to causal analyses (Timestamps, transactions can be recorded even with data flow information) …
…to enable you to reconstruct what happened inside your application whenever
something goes wrong
…to resolve inexplicable application behavior (raised by exceptions, synchronization
issues, performance problems etc.)

Resolve runtime issues/Monitor problems: Due its low overhead and ‘traceability’-feature it can be used for monitoring applications

Remote/Distributed Tracing: SpeedTrace provides freely distributable trace agents, which can be used to record applications which are distributed throughout the network. In contrast to its competitors, SpeedTrace can trace multiple processes on any machines, and the trace results can be stored on a network share which is accessible from other clients analyzing the results.

Precise/Detailed Recording: Furthermore, SpeedTrace Pro allows you to record with greatest accuracy using the following unique recording features:

  • Triggers define when to start and stop the recording of applications WITHOUT code
    modifications (invariably required when using other tools)
  • Filters help you to define what to record to be able to track enterprise apps, breaking
    down the complexity by using features such as black-boxing
  • DataTrace allows you to investigate the application data flow in case of problems by
    providing information that was passed to methods
  • Callback API enables you to interactively react to application events by implementing a SpeedTrace Pro user extension without product code modifications.

Unique and powerful analysis features/Resolve Problems:

  • Divide-and-conquer principle allows you to further break down the complexity by using features such as black-boxing (thus simplifying profiling info).
  • Complex viewing options: By filtering information you can change your point of view
    when looking at the data, to empower yourself to follow the divide-and-conquer
    principle, for example, in order to get rid of implementation details of other teams,
    external components, etc. This allows development stakeholders to see only the
    information they are interested in.
  • Get to the root: Powerful drill-downs enable you to work efficiently to find the real
    causes of problems
  • Test Automation API/Prevent problems: SpeedTrace Pro provides you with a rich
    (recording/analysis) API to integrate SpeedTrace Pro into the application performance life cycle by regularly performing sanity checks during the development stage (-> automated testing).

  • High quality support is provided by experienced performance consultants: Unlike other tools SpeedTrace Pro also offers consultancy services to resolve performance crises in major companies.

For more information view our documentation on our website, this dotnet-profiler-blog, visual studio gallery presentation.

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) >>