A quick review of the Concurrency Visualizer in Visual Studio 2015

The Concurrency visualizer is a free extension available in Visual Studio 2015 that can be used to analyse the performance of a concurrent application. I am going to do a simple overview of this extension. The tested code This is the code I am going to profile with the extension. It basically creates four non … Continue reading A quick review of the Concurrency Visualizer in Visual Studio 2015

Advertisements

How DataFlow avoids race conditions by default

In my previous articles, I tried to present Akka.Net. Let's remember that the good old Task Parallel Library (TPL) also includes an implementation of the actor model in a dedicated assembly: DataFlow. The actor model is a way to simplify concurrent programming. How DataFlow solves the problem of race conditions that comes with concurrency? We just want … Continue reading How DataFlow avoids race conditions by default

Example with Akka.Net: testing the DFS algorithm with Akka.Net TestKit

Introduction In my first post, I introduced an example with Akka.Net by implementing an algorithm: create a tree and visit it using depth first search (DFS). In this article, we are going to test this algorithm using Akka.Net TestKit. After explaining general principles of uniting testing with Akka.Net TestKit, I will present the particular implementation used for the … Continue reading Example with Akka.Net: testing the DFS algorithm with Akka.Net TestKit

Example with Akka.Net: create a tree and visit it using depth first search

Akka.Net helps building asynchronous and distributed programs. This framework is based on the actor model. In this model, actors are classes that communicate with messages only, and do not share mutable variables with other actors. Therefore, actors can safely run concurrently without synchronization mechanisms. I propose to have a look at this framework by implementing an algorithm : creating a tree, and visiting it using depth first search. In this article, I will focus on running the program in a single machine, but with multiple cores (distributed programming with Akka.Net will not be discussed). After describing the algorithm and its expected behavior in Akka.Net, I will explain the implementation.