Your Python code may run correctly, but you need it to run faster. Updated for Python 3, this expanded edition shows you how to locate performance bottlenecks and significantly speed up your code in high-data-volume programs. By exploring the fundamental theory behind design choices, High Performance Python helps you gain a deeper understanding of Python's implementation. How do you take advantage of multicore architectures or clusters? Or build a system that scales up and down without losing reliability? Experienced Python programmers will learn concrete solutions to many issues, along with war stories from companies that use high-performance Python for social media analytics, productionized machine learning, and more. -- Provided by publisher
Python jest językiem łatwym do opanowania i przyjemnym dla programisty. Jednak
łatwość projektowania nie przekłada się na szybkość działania kodu. W
konsekwencji przetwarzanie dużych wolumenów danych czy próba skalowania
aplikacji kończą się problemami z wydajnością lub niezawodnością. Niekiedy
rozwiązaniem jest zastosowanie procesów szeregowych, w innych przypadkach
warto sięgnąć do architektury wielordzeniowej, klastrów lub układów GPU.
Relatywnie często okazuje się, że dobre wyniki uzyskuje się w efekcie takiego
zmodyfikowania technik kodowania, aby przy wykorzystaniu potencjału Pythona
stosować sprawdzone metody poprawy wydajności kodu. Dzięki drugiemu,
poszerzonemu i zaktualizowanemu wydaniu tej książki zdobędziesz wszechstronną
wiedzę o czynnikach wpływających na wydajność kodu. Dowiesz się, jakie procesy
zachodzą w tle komputera, na jakich zasadach odbywa się przydzielanie pamięci,
oraz zyskasz nowe spojrzenie na proces kompilacji do postaci kodu maszynowego.
Zapoznasz się z zagadnieniem współbieżności i obliczeń klastrowych. Zaczniesz
swobodnie posługiwać się najlepszymi narzędziami Pythona, takimi jak NumPy czy
moduł multiprocessing. Z pewnością docenisz techniki zapewniające korzystanie
z minimum zasobów, takich jak czas procesora czy pamięć RAM. Opisane tu
zagadnienia zilustrowano przykładami kodu oraz poradami najlepszych
specjalistów z branży. W książce: narzędzia NumPy, Cython i Docker znajdowanie
wąskich gardeł związanych z wykorzystaniem czasu procesora i pamięci wydajność
kodu a odpowiednie struktury danych przyspieszanie obliczeń opartych na
macierzach i wektorach zarządzanie wieloma operacjami obliczeniowymi i
wejścia-wyjścia przetwarzanie współbieżne i uruchamianie kodu w klastrze
Programowanie w Pythonie: przede wszystkim wydajność i niezawodność!
Wydajne aplikacje w języku Python! Python to skryptowy język programowania
istniejący na rynku od wielu lat — jego pierwsza wersja pojawiła się w 1991
roku. Przejrzystość kodu źródłowego była jednym z głównych celów Guida van
Rossuma, twórcy tego języka. Dziś Python cieszy się dużą popularnością, co z
jednej strony świadczy o jego przydatności, a z drugiej gwarantuje
użytkownikom szerokie wsparcie społeczności programistów języka. Python jest
elastyczny, dopuszcza różne style programowania, a dzięki temu znajduje
zastosowanie w wielu miejscach świata IT. Jeżeli chcesz w pełni wykorzystać
możliwości Pythona i tworzyć wydajne rozwiązania, to koniecznie zaopatrz się w
tę książkę! Dzięki niej dowiesz się, jak wykorzystać profilowanie do
lokalizowania „wąskich gardeł”, oraz poznasz efektywne techniki wyszukiwania
danych na listach, w słownikach i zbiorach. Ponadto zdobędziesz wiedzę na
temat obliczeń macierzowych i wektorowych oraz zobaczysz, jak kompilacja do
postaci kodu C wpływa na wydajność Twojego rozwiązania. Osobne rozdziały
zostały poświęcone współbieżności oraz modułowi multiprocessing. Opanowanie
tych zagadnień pozwoli Ci ogromnie przyspieszyć działanie Twojej aplikacji. Na
sam koniec nauczysz się tworzyć klastry i kolejki zadań oraz optymalizować
zużycie pamięci RAM. Rozdział dwunasty to gratka dla wszystkich — zawiera
najlepsze porady specjalistów z branży! Książka ta jest obowiązkową lekturą
dla wszystkich programistów chcących tworzyć wydajne rozwiązania w języku
Python. Poznaj lepiej narzędzia numpy i Cython, a także narzędzia profilujące
Dowiedz się, jak w języku Python dokonywana jest abstrakcja bazowej
architektury komputera. Użyj profilowania do znajdowania „wąskich gardeł”
związanych z wykorzystaniem czasu procesora i pamięci. Utwórz wydajne
programy, wybierając odpowiednie struktury danych. Przyspiesz obliczenia
oparte na macierzach i wektorach. Zastosuj narzędzia do kompilacji kodu Python
do postaci kodu maszynowego. Zarządzaj jednocześnie wieloma operacjami
obliczeniowymi i operacjami wejścia-wyjścia. Przekształć kod przetwarzania
współbieżnego w celu uruchomienia go w klastrze lokalnym lub zdalnym. Rozwiąż
duże problemy, używając mniej pamięci RAM. Wyciśnij z Pythona siódme poty!