Mimo iż dysponujemy coraz szybszym i wydajniejszym sprzętem, oprogramowaniu wciąż stawia się wyśrubowane wymogi: musi działać prędko i bezawaryjnie. Nieraz od jakości pracy systemu zależy szczególnie dużo, nawet bezpieczeństwo i życie człowieka. Eliminacja źródłowych przyczyn problemów wydajnościowych jest jednak bardzo nieprzystępnym zadaniem. Wymaga wiedzy o działaniu sprzętu, interakcjach pomiędzy komponentami systemu i wysokiej klasy umiejętności programistycznych.
Ta książka jest dedykowana dla programistów i osób zaawansowanych w nauce programowania. Dzięki niej nauczysz się uwzględniać w projektach narzędzia do obserwacji pracy kodu i analizować uzyskane dzięki nim dane o wydajności. Dowiesz się też, jak na podstawie takiego wnioskowania uzyskiwać wyraźną poprawę w szybkości przetwarzania powolnych operacji. Prezentowane treści zilustrowano przykładami i ćwiczeniami w języku C albo C++ w systemie Linux. Materiał zawarty w książce to trzy główne zagadnienia: pomiary, obserwacje oraz wnioskowanie i nanoszenie poprawek w kodzie. Wartościową częścią książki jest omówienie cyklu budowy niskokosztowego narzędzia do obserwacji KUtrace i jego zastosowania we wdrażaniu wyrafinowanych rozwiązań programistycznych. W ten sposób można u źródła likwidować przyczyny problemów z wydajnością kodu.
Najciekawsze zagadnienia:
- problemy sprzętowe: procesory, pamięci, dyski twarde, nośniki SSD i sieci
- korygowanie kodu wolno działającego programu
- {pomocn|przydatn)e mechanizmy monitorowania pracy kodu
- analiza danych dotyczących wydajności
- identyfikacja problemów, takich jak wykonywanie zbyt wielu instrukcji, powolne wykonywanie instrukcji, oczekiwanie na zasoby i blokady programowe
Kod eksperta: tu każdy bit ma znaczenie!