Today I’m going to show you how effectively solve painful issues related to memory corruption occurrences.
Czytaj dalej Tip of the day: gcc address sanitizerKategoria: C++
Witaj w piekle: C & C++ – niejawne konwersje i promocje typów
Nie jest tajemnicą, że C i C++ zawiera sporo różnych pułapek czyhających nawet na doświadczonych programistów. Chciałbym przedstawić kilka wyjątkowo wrednych, trudnych do wykrycia, czasem subtelnych i prawie zawsze bardzo niebezpiecznych niespodzianek jakie zaserwuje nam kompilator. Co gorsza, na pierwszy rzut oka wszystko wygląda logicznie…
Czytaj dalej Witaj w piekle: C & C++ – niejawne konwersje i promocje typówArchitektura 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.
Czytaj dalej Architektura serwerów – wydajność przetwarzania zapytań cz.3Architektura 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…
Czytaj dalej Architektura serwerów – wydajność przetwarzania zapytań cz.2Architektura 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 zajmujących się tematyką wydajności aplikacji sieciowych i serwerowych.
Czytaj dalej Architektura serwerów – wydajność przetwarzania zapytań cz.1
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 between C/C++ and Java languages and present some examples. However, this is not a definitive guide. The main purpose of this article is to give some overview and highlight potential problems.
The volatile
keyword differs from language to language, thus we can’t just write one definition for all. Fortunately, the volatile
type identifier serves the same purpose in C and C++ (albeit C++ slightly extends the definition). Czytaj dalej Ethereal stuff – volatile