Mimo że dysponujemy coraz szybszym i wydajniejszym sprzętem, oprogramowaniu wciąż stawia się wyśrubowane wymagania: musi działać błyskawicznie i niezawodnie. Nieraz od jakości pracy systemu zależy bardzo dużo, nawet bezpieczeństwo i życie człowieka. Eliminacja źródłowych przyczyn problemów wydajnościowych jest jednak niezwykle trudnym zadaniem. Wymaga wiedzy o działaniu sprzętu, interakcjach między komponentami systemu, a także wysokiej klasy umiejętności programistycznych.
Ta książka jest przeznaczona 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ć znaczną poprawę w szybkości przetwarzania powolnych operacji. Prezentowane treści zilustrowano przykładami i ćwiczeniami w języku C lub C++ w systemie Linux. Materiał zawarty w książce to trzy główne zagadnienia: pomiary, obserwacje, a także wnioskowanie i nanoszenie poprawek w kodzie. Wartościową częścią książki jest omówienie procesu 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 usuwać 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
- przydatne 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!