Realtime Rendering

With code glass you can visualise in realtime the data from the profiled application, these render types include:

Many more render types, like thread specific rendering will be added in the future.

Render Types

Realtime Call Tree Rendering

assets/img/ApplicationInstanceWindow/RealtimeCallTreeRendering.png

See View - Realtime Call Tree Rendering or View - Exception Call Tree Rendering for view specific information.

This render type gives you a view into the call tree, it updates in real time while the applciation is running but will also desplay previous collected data.

What is rendered is reflected with what profiling data filters you have set.

The rendering does also reflect call stack steps that you might have made, forwards but also backwards!

Every thread rendered is assigned the most diferent color available, this is why the first 3 threads are Reg, Green and Blue (RGB) Then it will start using the most different shades of RGB and so forward.

This render type does not combine calls to the same function (Like (grouped) Call Stack rendering) but instead seperates them per root function.

So for example

Thread 1 (red)   has a call stack of: A() -> B() -> C()
Thread 2 (green) has a call stack of: B() -> C()
Thread 3 (blue)  has a call Stack of: A() -> D() -> C()

would result in render:

A() r-> B() r-> C()
|   b-> D() b-> C()
B() g-> C()

For full thread seperated rendering see Roadmap - Thread rendering

Realtime Call Stack Rendering

assets/img/ApplicationInstanceWindow/RealtimeGroupedCallStackRendering.png

See View - Realtime Call Stack Rendering or View - Exception Call Stack Rendering for view specific information.

This render type gives you a view into the call stack, it updates in real time while the applciation is running but will also desplay previous collected data.

The rendering does also reflect call stack steps that you might have made, forwards but also backwards!

What is rendered is reflected with what profiling data filters you have set.

Every thread rendered is assigned the most diferent color available, this is why the first 3 threads are Reg, Green and Blue (RGB) Then it will start using the most different shades of RGB and so forward.

It combines all calls to the same specified data item type (like class or namespace) instead of only to function.

So for example

Thread 1 (red)   has a call stack of: A() -> B() -> C()
Thread 2 (green) has a call stack of: A() -> D() -> C()
Thread 3 (blue)  has a call Stack of: A() -> F() -> E()

would result in:

A() r-> B() 
|           rg-> C()
|   g-> D()
|   b-> F() b -> E();

Realtime Code Heatmap

assets/img/ApplicationInstanceWindow/CodeHeatMapWindow.png

See View - Realtime Code Heat map for view specific information.

This render type gives you a Heat map kind of view into the realtime or previous collected data.

With this you can view multiple realtime heat maps based on the data object type and statistics.
For C# applications those are:

  • Method
  • Property
  • Class
  • Namespace
  • Process

And the current selectable statistics are:

  • None
  • Total Calls
  • Total Call Duration
  • Average Call Duration
  • Active Calls
  • Active Threads
  • Longest Call
  • Shortest Call

Example Use cases

Find racing conditions

By using (grouped) Call Stack rendering it will show you when threads cross eachother, which can greatly help you find bugs relating to racing conditions in your code.

What is rendered is reflected with what profiling data filters you have set.

The rendering does also reflect call stack steps that you might have made, forwards but also backwards!

Find why your application is slowing down or unresponsesive

by using one of the call tree or (grouped) Call Stack renderers you can instantly see what code the application is running and find our where it is slowing down on what causes it to be unresponsive.

Find bad behaving code

By using the code heat map you can easily find out which part of your program is behaving badly.

Limitations

Currently it does not show when code throws or causes an exception, this will be added in the future.

Views using this feature

See Also: