Book description
;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.
Table of contents
- okładka
- Prawa autorskie strony
- tytuł strony
- Spis treści
- Przedmowa
- ROZDZIAŁ 1. Wydajny kod Python
-
ROZDZIAŁ 2. Użycie profilowania do znajdowania wąskich gardeł
- Efektywne profilowanie
- Wprowadzenie do zbioru Julii
- Obliczanie pełnego zbioru Julii
- Proste metody pomiaru czasu — instrukcja print i dekorator
- Prosty pomiar czasu za pomocą polecenia time systemu Unix
- Użycie modułu cProfile
- Użycie narzędzia runsnake do wizualizacji danych wyjściowych modułu cProfile
- Użycie narzędzia line_profiler do pomiarów dotyczących kolejnych wierszy kodu
- Użycie narzędzia memory_profiler do diagnozowania wykorzystania pamięci
- Inspekcja obiektów w stercie za pomocą narzędzia heapy
- Użycie narzędzia dowser do generowania aktywnego wykresu dla zmiennych z utworzonymi instancjami
- Użycie modułu dis do sprawdzania kodu bajtowego narzędzia CPython
- Testowanie jednostkowe podczas optymalizacji w celu zachowania poprawności
- Strategie udanego profilowania kodu
- Podsumowanie
- ROZDZIAŁ 3. Listy i krotki
- ROZDZIAŁ 4. Słowniki i zbiory
- ROZDZIAŁ 5. Iteratory i generatory
-
ROZDZIAŁ 6. Obliczenia macierzowe i wektorowe
- Wprowadzenie do problemu
- Czy listy języka Python są wystarczająco dobre?
- Fragmentacja pamięci
- Zastosowanie narzędzia numpy w przypadku problemu dotyczącego dyfuzji
- Moduł numexpr: przyspieszanie i upraszczanie operacji wewnętrznych
- Przestroga: weryfikowanie „optymalizacji” (biblioteka scipy)
- Podsumowanie
-
ROZDZIAŁ 7. Kompilowanie do postaci kodu C
- Jakie wzrosty szybkości są możliwe?
- Porównanie kompilatorów JIT i AOT
- Dlaczego informacje o typie ułatwiają przyspieszenie działania kodu?
- Użycie kompilatora kodu C
- Analiza przykładu zbioru Julii
- Cython
- Shed Skin
- Cython i numpy
- Numba
- Pythran
- PyPy
- Kiedy stosować poszczególne technologie?
- Interfejsy funkcji zewnętrznych
- Podsumowanie
- ROZDZIAŁ 8. Współbieżność
-
ROZDZIAŁ 9. Moduł multiprocessing
- Moduł multiprocessing
- Przybliżenie liczby pi przy użyciu metody Monte Carlo
- Przybliżanie liczby pi za pomocą procesów i wątków
- Znajdowanie liczb pierwszych
-
Weryfikowanie liczb pierwszych za pomocą komunikacji międzyprocesowej
- Rozwiązanie z przetwarzaniem szeregowym
- Rozwiązanie z prostym obiektem Pool
- Rozwiązanie z bardzo prostym obiektem Pool dla mniejszych liczb
- Użycie obiektu Manager.Value jako flagi
- Użycie systemu Redis jako flagi
- Użycie obiektu RawValue jako flagi
- Użycie modułu mmap jako flagi
- Użycie modułu mmap do odtworzenia flagi
- Współużytkowanie danych narzędzia numpy za pomocą modułu multiprocessing
- Synchronizowanie dostępu do zmiennych i plików
- Podsumowanie
-
ROZDZIAŁ 10. Klastry i kolejki zadań
- Zalety klastrowania
- Wady klastrowania
- Typowe projekty klastrowe
- Metoda rozpoczęcia tworzenia rozwiązania klastrowego
- Sposoby na uniknięcie kłopotów podczas korzystania z klastrów
- Trzy rozwiązania klastrowe
- Użycie systemu NSQ dla niezawodnych klastrów produkcyjnych
- Inne warte uwagi narzędzia klastrowania
- Podsumowanie
- ROZDZIAŁ 11. Mniejsze wykorzystanie pamięci RAM
-
ROZDZIAŁ 12. Rady specjalistów z branży
- Narzędzie Social Media Analytics (SoMA) firmy Adaptive Lab
- Technika głębokiego uczenia prezentowana przez firmę RadimRehurek.com
- Uczenie maszynowe o dużej skali gotowe do zastosowań produkcyjnych w firmie Lyst.com
- Analiza serwisu społecznościowego o dużej skali w firmie Smesh
- Interpreter PyPy zapewniający powodzenie systemów przetwarzania danych i systemów internetowych
- Kolejki zadań w serwisie internetowym Lanyrd.com
- Skorowidz
- O autorach
- Kolofon
-
Przypisy
- ROZDZIAŁ 1. Wydajny kod Python
- ROZDZIAŁ 2. Użycie profilowania do znajdowania wąskich gardeł
- ROZDZIAŁ 3. Listy i krotki
- ROZDZIAŁ 4. Słowniki i zbiory
- ROZDZIAŁ 5. Iteratory i generatory
- ROZDZIAŁ 6. Obliczenia macierzowe i wektorowe
- ROZDZIAŁ 7. Kompilowanie do postaci kodu C
- ROZDZIAŁ 8. Współbieżność
- ROZDZIAŁ 9. Moduł multiprocessing
- ROZDZIAŁ 10. Klastry i kolejki zadań
- ROZDZIAŁ 11. Mniejsze wykorzystanie pamięci RAM
Product information
- Title: Python. Programuj szybko i wydajnie
- Author(s):
- Release date: April 2015
- Publisher(s): Helion
- ISBN: 97888328304697
You might also like
book
Myśl w języku Python! Nauka programowania
Aby stać się cenionym programistą, trzeba zacząć od bardzo solidnych podstaw. Python jest idealną propozycją dla …
book
Python w analizie danych
Analiza danych stała się samodzielną dyscypliną wiedzy interesującą specjalistów z wielu branż: analityków biznesowych, statystyków, architektów …
book
Python Rusz głową! Wydanie II
Python, prosty, wszechstronny i elastyczny język programowania, nadaje się zarówno do pisania niedużych skryptów, wielkich systemów, …
book
Ekstrakcja danych z językiem Python
Ekstrakcję danych (ang. web scraping), zwaną też wydobywaniem danych z zasobów internetu, wiele osób postrzega jako …