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 [...]



GCC 4.7 vs CLang 3.1 on eddic

eddic Logo

Now that eddic can be compiled with CLang, I wanted to compare the differences in compilation time and in performance of the generated executable between those two compilers. The tests are done using GCC 4.7.2 and CLang 3.1 on Gentoo. Compilation Time The first thing that I tested has been the compilation time of the [...]



Integer Linear Time Sorting Algorithms

C++ Logo

Update: The code is now more C++ Most of the sorting algorithms that are used are generally comparison sort. It means that each element of the collection being sorted will be compared to see which one is the first one. A comparison must have a lower bound of Ω(n log n) comparisons. That is why [...]



Run your Boost Tests in parallel with CMake

CMake

I was looking for a Test Library to run eddic tests in parallel to replace Boost Test Library. I posted my question on StackOverflow and an awesome solution has been posted. With CMake and a little CMake additional file, it is possible to run the tests written with Boost Test Library in parallel without changing [...]



Algorithms books Reviews

Book Review

To be sure to be well prepared for an interview, I decided to read several Algorithms book. I also chosen books in order to have information about data structures. I chose these books to read: Data Structures & Algorithm Analysis in C++, Third Edition, by Clifford A. Shaffer Algorithms in a Nutshell, by George T. [...]



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 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 [...]