Narzędzia do pomiaru czasu i benchmarków
Mierz przed optymalizacją.
Narzędzia do pomiaru czasu i benchmarków to bezpłatna lekcja Mojo Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Mojo Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Mojo Academy zawiera 4 lekcji w sumie.
Najpierw mierz, potem optymalizuj
Nigdy nie zgaduj, na co zużywany jest czas. Najpierw mierz kod, ponieważ powolny fragment rzadko jest tym, którego się spodziewasz. ⏱️
Moduł time
Mojo dostarcza moduł time z pomocniczymi funkcjami do odczytu zegara. To najprostsze narzędzie do mierzenia czasu wykonania fragmentu pracy.
from time import nowOdczytywanie zegara
Funkcja now zwraca bieżący czas w nanosekundach. Odczytaj go tuż przed rozpoczęciem mierzonej pracy i tuż po jej zakończeniu.
var start = now()
# ...work...
var end = now()Obliczanie czasu, który upłynął
Odejmij czas początkowy od końcowego, aby uzyskać liczbę nanosekund, które upłynęły. Podziel ją, aby przeliczyć wynik na milisekundy lub sekundy i uzyskać czytelny rezultat.
var elapsed_ns = end - start
var ms = elapsed_ns / 1_000_000Zegar ścienny a praca obliczeniowa
Odmierzaj czas tylko kodu, który Cię interesuje. Jeśli zmierzysz również przygotowanie danych lub wypisywanie wyników, ten szum ukryje rzeczywisty koszt obliczeń, który próbujesz zbadać.
Użyj modułu benchmark
Do uzyskania wiarygodnych wyników Mojo oferuje moduł benchmark, który wielokrotnie uruchamia kod i automatycznie podaje stabilną średnią.
from benchmark import keepZachowaj wyniki
Funkcja keep informuje kompilator, że dana wartość rzeczywiście ma znaczenie. Bez niej usuwanie martwego kodu może wyeliminować pracę, której czas miałeś zmierzyć.
var r = compute()
keep(r)Powtarzaj, aby uzyskać stabilne wyniki
Pojedynczy przebieg jest podatny na zakłócenia powodowane przez pamięć podręczną i system operacyjny. Wykonanie wielu iteracji i uśrednienie wyników daje liczbę, której można zaufać.
Rozgrzej kod
Pierwszy przebieg często trwa dłużej z powodu pustych pamięci podręcznych i uruchamiania programu. Krótki, pominięty rozbieg sprawia, że późniejsze pomiary odzwierciedlają szybkość w stanie ustalonym.
Wybierz miarodajne dane wejściowe
Małe dane wejściowe są przetwarzane zbyt szybko, aby można było je dobrze zmierzyć. Wybierz dane wejściowe wystarczająco duże, aby działanie trwało stabilny, mierzalny czas.
Mierz w stałych warunkach
Zawsze wykonuj benchmark na tej samej maszynie, z niewielką liczbą programów działających w tle. Stabilne warunki sprawiają, że jeden przebieg można porównać z kolejnym.
Szybkie sprawdzenie
Zastanów się, dlaczego w ogóle mierzymy czas wykonania kodu.
Podsumowanie
Nauczyłeś się najpierw mierzyć: odczytywać now z modułu time, używać benchmark wraz z keep, rozgrzewać kod, powtarzać pomiary i mierzyć stabilną pracę. 🎯
Ucz się Mojo dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Narzędzia do pomiaru czasu i benchmarków” jest bezpłatna?
Tak — pełny tekst „Narzędzia do pomiaru czasu i benchmarków” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Mojo Academy, przejdź na CoddyKit PRO. Kurs Mojo Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Narzędzia do pomiaru czasu i benchmarków”?
Mierz przed optymalizacją. Ćwiczysz Mojo Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Mojo Academy?
Nie wymagamy żadnego doświadczenia. Mojo Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Narzędzia do pomiaru czasu i benchmarków”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Mojo Academy?
Tak. Każda lekcja Mojo Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Narzędzia do pomiaru czasu i benchmarków
- Znajdowanie rzeczywistego wąskiego gardła
- Optymalizowanie tego, co ma znaczenie
- Odczytywanie raportu profilowania