Optymalizacja wydajności
Wydajność i optymalizacja kodu. Istota dynamiki działania oprogramowania
- Szczegóły
- Kategoria: Optymalizacja wydajności
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!
Dr Richard L. Sites zajmuje się programowaniem od 1959 roku. Zdobył olbrzymią wiedzę o interakcjach sprzętu i oprogramowania. Rozwijał mikrokod architektury VAX, był jednym z architektów mikroprocesora DEC Alpha i wymyślił liczniki wydajności powszechnie stosowane w procesorach. Zajmował się niskokosztowym śledzeniem mikrokodu i oprogramowania w firmach: DEC, Adobe, Google i Tesla. Posiada 66 patentów i jest członkiem National Academy of Engineering.
- Myślenie systemowe. Wprowadzenie - [21 sierpień 2020]
- Podkręcanie procesorów. Ćwiczenia - [30 listopad 1999]