Ocena:

Obecnie brak opinii czytelników. Ocena opiera się na 75 głosach.
The Art of Writing Efficient Programs: An advanced programmer's guide to efficient hardware utilization and compiler optimizations using C++ examples
Zapoznaj się z różnymi technikami poprawy wydajności, takimi jak współbieżność, programowanie bez blokad, operacje atomowe, równoległość i zarządzanie pamięcią.
Kluczowe cechy:
⬤ Zrozumienie ograniczeń współczesnych procesorów i ich wpływu na wydajność.
⬤ Dowiedz się, jak uniknąć pisania nieefektywnego kodu i uzyskać najlepsze optymalizacje od kompilatora.
⬤ Poznanie kompromisów i kosztów pisania wydajnych programów.
Opis książki:
Wielki darmowy lunch "wydajność dba o siebie" dobiegł końca. Do niedawna programy stawały się szybsze same z siebie, gdy procesory były ulepszane, ale tak się już nie dzieje. Częstotliwość taktowania nowych procesorów osiągnęła niemal szczyt. Nowe architektury zapewniają niewielkie ulepszenia dla istniejących programów, ale pomaga to tylko nieznacznie. Procesory stają się coraz większe i wydajniejsze, ale większość tej nowej mocy jest zużywana przez zwiększoną liczbę rdzeni przetwarzających i innych "dodatkowych" jednostek obliczeniowych. Aby pisać wydajne oprogramowanie, trzeba teraz wiedzieć, jak programować, dobrze wykorzystując dostępne zasoby obliczeniowe, a ta książka nauczy Cię, jak to zrobić.
Książka obejmuje wszystkie główne aspekty pisania wydajnych programów, takie jak efektywne wykorzystanie zasobów procesora i pamięci, unikanie niepotrzebnych obliczeń, mierzenie wydajności oraz dobre wykorzystanie współbieżności i wielowątkowości. Dowiesz się również o optymalizacjach kompilatora i jak efektywniej korzystać z języka programowania (C)+). Wreszcie, zrozumiesz, jak decyzje projektowe wpływają na wydajność.
Pod koniec tej książki będziesz miał nie tylko wystarczającą wiedzę na temat procesorów i kompilatorów, aby pisać wydajne programy, ale będziesz także w stanie zrozumieć, jakich technik używać i co mierzyć podczas poprawy wydajności. U podstaw tej książki leży nauka uczenia się.
Czego się nauczysz:
⬤ Dowiedz się, jak efektywnie wykorzystywać sprzętowe zasoby obliczeniowe w swoich programach.
⬤ Zrozumieć związek między kolejnością pamięci a barierami pamięci.
⬤ Zapoznać się z implikacjami wydajności różnych struktur i organizacji danych.
⬤ Ocenić wpływ współbieżnego dostępu do pamięci na wydajność i jak go zminimalizować.
⬤ Odkrycie, kiedy używać, a kiedy nie używać technik programowania bez blokad.
⬤ Zbadanie różnych sposobów poprawy skuteczności optymalizacji kompilatora.
⬤ Projektowanie interfejsów API dla współbieżnych struktur danych i struktur danych o wysokiej wydajności w celu uniknięcia nieefektywności.
Dla kogo jest ta książka:
Ta książka jest przeznaczona dla doświadczonych deweloperów i programistów, którzy pracują nad projektami o krytycznym znaczeniu dla wydajności i chcą poznać różne techniki poprawy wydajności swojego kodu. Programiści, którzy należą do społeczności zajmujących się handlem algorytmicznym, grami, bioinformatyką, genomiką obliczeniową lub obliczeniową dynamiką płynów, mogą nauczyć się różnych technik z tej książki i zastosować je w swojej dziedzinie pracy.
Mimo że w książce wykorzystano język C++, przedstawione w niej koncepcje można łatwo przenieść lub zastosować do innych skompilowanych języków, takich jak C, Java, Rust, Go i innych.