eddic 1.2.2 – Performances, improved optimizations and additions to standard library

eddic Logo

These last weeks, I had more work than expected with my Master thesis so it took me longer to finish this new version of eddic. Moreover, I included more stuff than I though in this version. Anyway, I’m happy to announce the version 1.2.2 of eddic. It is a minor version regarding the language itself. [...]



C++ Benchmark – std::list VS boost::intrusive::list

Boost Logo

Recently, we saw that the std::list performance was not really good when it comes to searching it or iterating through it.In this post, we will see an alternative to the std::list: the boost::intrusive::list from the Boost C++ libraries. It is not a well known library but it can be useful in some specific cases. I [...]



C++ benchmark – std::vector VS std::list VS std::deque

Charts

Last week, I wrote a benchmark comparing the performance of std::vector and std::list on different workloads. This previous article received a lot of comments and several suggestions to improve it. The present article is an improvement over the previous article. In this article, I will compare the performance of std::vector, std::list and std::deque on several [...]



C++ benchmark – std::vector VS std::list

C++ Logo

A updated version of this article is available: C++ benchmark – std::vector VS std::list VS std::deque In C++, the two most used data structures are the std::vector and the std::list. In this article, we will compare the performance in practice of these two data structures on several different workloads. In this article, when I talk [...]



C++11 Synchronization Benchmark

C++ Logo
This entry is part 5 of 5 in the series C++11 Concurrency Tutorial

This entry is part 5 of 5 in the series C++11 Concurrency TutorialIn the previous parts of this serie, we saw some C++11 Synchronization techniques: locks, lock guards and atomic references. In this small post, I will present the results of a little benchmark I did run to compare the different techniques. In this benchmark, [...]



C++11 Concurrency Tutorial – Part 4: Atomic Types

C++ Logo
This entry is part 4 of 5 in the series C++11 Concurrency Tutorial

This entry is part 4 of 5 in the series C++11 Concurrency TutorialIn the previous article, we saw advanced techniques about mutexes. In this post, we will continue to work on mutexes with more advanced techniques. We will also study another concurrency technique of the C++11 Concurrency Library: Atomic Types Atomic Types We will take, [...]



C++11 Concurrency Tutorial – Part 3: Advanced locking and condition variables

This entry is part 3 of 5 in the series C++11 Concurrency Tutorial

This entry is part 3 of 5 in the series C++11 Concurrency TutorialIn the previous article, we saw how to use mutexes to fix concurrency problems. In this post, we will continue to work on mutexes with more advanced techniques. We will also study another concurrency technique of the C++11 Concurrency Library: condition variables. Recursive [...]



C++11 Concurrency Tutorial – Part 2 : Protect shared data

C++ Logo
This entry is part 2 of 5 in the series C++11 Concurrency Tutorial

This entry is part 2 of 5 in the series C++11 Concurrency TutorialIn the previous article, we saw how to start threads to execute some code in parallel. All the code executed in the threads were independant. In the general case, you often use shared objects between the threads. And when you do it, you [...]



C++11 Concurrency – Part 1 : Start Threads

C++ Logo
This entry is part 1 of 5 in the series C++11 Concurrency Tutorial

This entry is part 1 of 5 in the series C++11 Concurrency TutorialC++11 introduced a new thread library. This library includes utilities for starting and managing threads. It also contains utilities for synchronization like mutexes and other locks, atomic variables and other utilities. In this serie of posts, I will try to explain most of [...]



EDDIC 0.7.1 : Boolean conditions and new operators

I just finished working on the 0.7.1 version of eddic. Even it it’s a minor version, there are several new features in the language itself. First of all, the boolean conditions have been greatly improved. You can now use && (short circuit and operator) and || (short circuit or operator) operators to make complex conditions [...]