The new kid on the block – golang

Do you remember my article about the speed of sorting large data chunk in different languages? Of course you don’t. So, I advice you to go through that article as there is a description of the test procedure. However, today I’m going to extend this benchmark by testing go language. The results will be surprising…

Architektura serwerów – wydajność przetwarzania zapytań cz.3

Ostatnio udało nam się zrównoleglić przetwarzanie naszych zapytań. Jednak wydajność tego rozwiązania okazała się mocno rozczarowująca. Dzisiaj sprawdzimy co nie zagrało i jak przybliżyć rezultaty do oczekiwań. Użyjemy narzędzia VTune od Intela – od niedawna można z niego korzystać za darmo.

Architektura serwerów – wydajność przetwarzania zapytań cz.2

Kontynuujemy nasze zmagania z przetwarzaniem zapytań. W pierwszej części zdefiniowaliśmy problem i podjęliśmy pierwsze próby implementacji rozwiązania. Szybko jednak okazało się, że istnieją lepsze metody. Dzisiaj będziemy eksperymentować z wielowątkowością. Oczywiście nie obejdzie się bez problemów…

Architektura serwerów – wydajność przetwarzania zapytań cz.1

Ten wpis rozpoczyna krótką serię na temat architektury serwerów. Będzie to analiza różnych podejść skupiająca się na badaniu wydajności poszczególnych taktyk. Eksperymenty będą wykonywane na systemie Linux z użyciem różnych narzędzi jak np. Intel VTune, perf, dtrace itp. Pokażę różnorakie triki aby wydobyć poszczególne metryki. Artykuły będą raczej trudne, przydatne głownie dla programistów i inżynierów […]

7 multi-threading and concurrency deadly sins

Let’s see what kind of pitfalls are common in multi-threading & concurrency world. This kind of code is simply hard to write and even harder to maintain. I’m going to share what can go wrong and how to avoid many traps.

Yet another top-friend: irqtop

Some time ago I wrote an article about top-tools. Today I’d like to add another one to the list, that is, irqtop which is very useful for performance measurements and investigations. I may be biased a little bit because I have contributed to that project but the tool has given me help in many cases […]

Linux top-tools: performance measurements

This article presents a short list of very useful tools which are used for getting some information about what’s going on in our Linux system. These tools show some of the system’s resources utilization and saturation. Top-tools share one common property, that is, give a snapshot of certain properties in real time. Also they work […]

std::vector vs sorted std::vector vs std::set

In this short article I’m going to make a comparison between std::vector, sorted std::vector and std::set. However, I’m going to focus only on one aspect – which collection is faster during lookup. Looks like the answer is rather trivial – std::map and sorted std::vector offer access to any element in O(log n) time while unsorted […]

New word order – sorting

Almost every modern language comes with sorting procedures. Is there any reason to dive into? Very often it doesn’t matter which sorting procedure we select. Especially when we’re sorting a relatively small set of data, say, less than 1000 records, and the performance is not critical. Moreover, some languages give no options but one sorting […]

Ethereal stuff – volatile

In this article I’m going to share some details about the volatile keyword available in a number of programming languages like C++, C, Java. During my professional career, I have found out that the volatile type qualifier is frequently misunderstood and, what is even worse, incorrectly used (leading to nasty bugs). I’ll show the differences […]