Runtime Flow in real time monitors and logs function calls and function parameters in a running .NET application and shows a stack trace tree.
v2.1.0 adds the new Timeline window that shows local time when a function call started with 0.1 ms accuracy, the [thread id] and the function name with parameters and a return value:
This log was captured after running the following program (original source):
static void Main() { while (true) { // Start computation. Example(); // Handle user input. string result = Console.ReadLine(); Console.WriteLine("You typed: " + result); } } static async void Example() { // This method runs asynchronously. int t = await Task.Run(() => Allocate()); Console.WriteLine("Compute: " + t); } static int Allocate() { // Compute total count of digits in strings. int size = 0; for (int z = 0; z < 100; z++) { for (int i = 0; i < 100000; i++) { string value = i.ToString(); size += value.Length; } } return size; }
With monitoring filter set to “Module == test_timeline.exe || Function == WriteLine || Class == System.Threading.Tasks.Task”.
In the log you can see:
- a state machine created for the async Example function,
- Example function returned when a parallel thread [3696] was started to perform the Allocate computation,
- Allocate returned 588889000 and took 8.5 seconds for the calculation,
- WriteLine(“Compute: 588889000”) executed on the background thread where the Allocate computation was performed,
- second example calculation started in another parallel thread [11396] right after the “test” string was typed.
Download the latest installer from VlasovStudio.com/runtime-flow/.