Explore essential performance improvement techniques that enhance programming efficiency, including concurrency, lock-free programming, atomic operations, and parallelism. The book also delves into effective memory management strategies, providing readers with a comprehensive understanding of how to optimize their code for better performance. Ideal for developers looking to deepen their technical skills and improve application responsiveness.
This guide offers in-depth coverage of essential programming concepts, including object-oriented programming (OOP), functional programming, and generic programming, alongside the Standard Template Library (STL). It highlights the latest features of C++, making it a valuable resource for both beginners and experienced programmers looking to enhance their skills and understanding of modern C++ development.
Jeszcze kilka lat temu, by zwiększyć szybkość działania programu, wystarczyło
wymienić procesor. Dzisiejsze procesory nie są znacząco szybsze od
poprzedników. Nowsze architektury zapewniają zaledwie niewielkie przyrosty
wydajności istniejących już programów. Nie ma innego wyjścia: jeśli
programista chce tworzyć efektywne oprogramowanie, musi wiedzieć, jak
odpowiednio używać dostępnych zasobów obliczeniowych. Jest to trudna sztuka,
wymagająca ciągłej gotowości do nauki. To książka przeznaczona dla
doświadczonych programistów, którzy chcą sprawnie tworzyć efektywny kod.
Omówiono w niej, jak korzystać z zasobów procesora i pamięci, unikać zbędnych
obliczeń, mierzyć wydajność kodu i prawidłowo stosować współbieżność i
wielowątkowość. Zaprezentowano również zagadnienia związane z optymalizacjami
przeprowadzanymi przez kompilator, a także metody efektywniejszego korzystania
z właściwości języka programowania (C++). Dokładnie wyjaśniono zasady
projektowania oprogramowania pod kątem wydajności i aby ułatwić przyswajanie
wiedzy, zamieszczono wiele przykładów, które będą przydatne w czasie
samodzielnej nauki. Dzięki dogłębnemu zrozumieniu wiedzy ujętej w książce
łatwiej będzie podejmować właściwe decyzje podczas projektowania nowego
systemu lub modyfikowania już istniejącej architektury. Najciekawsze
zagadnienia: korzystanie ze sprzętowych zasobów obliczeniowych uporządkowanie
pamięci i należyte zorganizowanie danych wydajność operacji a współbieżny
dostęp stosowanie technik programowania bez użycia blokady zwiększanie
efektywności optymalizacji za pomocą kompilatora interfejsy API dla
współbieżnych struktur danych i struktur o dużej wydajności Dobre decyzje
projektowe to klucz do wydajności kodu!