Wydajność i optymalizacja kodu. Istota dynamiki działania oprogramowania
Wydajność i optymalizacja kodu. Istota dynamiki działania oprogramowania
Opis publikacji
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 zagadnie...
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!