Jak zmierzyć wydajność aplikacji Pythona?

Wydajność aplikacji jest kluczowym aspektem, który może zdecydować o jej sukcesie lub porażce. Zrozumienie, jak i dlaczego twoja aplikacja zachowuje się w określony sposób pod względem szybkości i zużycia zasobów, jest niezbędne do optymalizacji i zapewnienia płynnej obsługi użytkowników. W Pythonie istnieje kilka technik i narzędzi, które mogą pomóc w analizie i pomiarze wydajności aplikacji. W tym artykule skupimy się na jednym kompletnym przykładzie, który pokaże, jak wykorzystać wbudowane narzędzia do profilowania i mierzenia wydajności kodu Python.

Przykład: Profilowanie prostego skryptu

Zacznijmy od napisania prostego skryptu, który będziemy profilować. Nasz skrypt będzie symulował zadanie obliczeniowe, takie jak znalezienie liczb pierwszych w zakresie.

def is_prime(number):
    # Funkcja sprawdza, czy liczba jest liczbą pierwszą
    if number <= 1:
        return False
    for i in range(2, int(number**0.5) + 1):
        if number % i == 0:
            return False
    return True

def find_primes(n):
    # Funkcja znajduje wszystkie liczby pierwsze do n
    primes = []
    for number in range(2, n+1):
        if is_prime(number):
            primes.append(number)
    return primes

# Główny blok kodu
if __name__ == "__main__":
    n = 10000
    # Wywołanie funkcji i zapisanie wyników
    primes = find_primes(n)
    print(f"Liczba liczb pierwszych do {n}: {len(primes)}")

Ten skrypt zawiera dwie funkcje: is_prime(), która sprawdza, czy dana liczba jest liczbą pierwszą, i find_primes(), która generuje listę wszystkich liczb pierwszych do zadanej liczby n. Teraz, gdy mamy skrypt gotowy, przejdźmy do profilowania.

Profilowanie za pomocą cProfile

Python oferuje kilka wbudowanych modułów do profilowania, z których cProfile jest jednym z najbardziej popularnych. Pozwala on na szczegółową analizę czasu wykonywania różnych części skryptu. Aby użyć cProfile, możemy po prostu dodać kilka linii kodu do naszego skryptu.

import cProfile

# Główny blok kodu
if __name__ == "__main__":
    n = 10000
    profiler = cProfile.Profile()
    profiler.enable()
    # Wywołanie funkcji i zapisanie wyników
    primes = find_primes(n)
    profiler.disable()
    profiler.print_stats(sort='time')

Podsumowanie

Profilowanie jest potężnym narzędziem w rękach programisty Pythona, pozwalającym na dogłębną analizę wydajności aplikacji. Poprzez zrozumienie, jakie części kodu są najbardziej czasochłonne lub zużywają najwięcej zasobów, można skutecznie zoptymalizować aplikację, poprawiając jej szybkość i efektywność.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs Python od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top