Zanurkuj w Pythonie/Optymalizacja szybkości - podsumowanie

Podsumowanie edytuj

Rozdział ten zilustrował kilka ważnych aspektów dotyczących zoptymalizowania czasu działania programu w Pythonie, jak i w ogólności optymalizacji czasu działania.

  • Jeśli masz wybrać między wyrażeniami regularnymi, a pisaniem własnej pętli, wybierz wyrażenia regularne. Wyrażenia regularne są przekompilowane w C, więc będą się wykonywały bezpośrednio przez twój komputer; twoja pętla jest pisana w Pythonie i działa za pośrednictwem interpretera Pythona.
  • Jeśli masz wybrać między wyrażeniami regularnymi, a metodami łańcucha znaków, wybierz metody łańcucha znaków. Obydwa są przekompilowane w C, więc wybieramy prostsze wersje.
  • Ogólne zastosowanie związane z przeszukiwaniem słowników jest szybkie, jednak specjalistyczne funkcje takie jak string.maketrans, czy też metody takie jak isalpha() są szybsze. Jeśli Python posiada funkcję specjalnie przystosowaną dla ciebie, wykorzystaj ją.
  • Nie bądź za mądry. Czasami najbardziej oczywiste algorytmy są najszybszymi, jakie byśmy wymyślili.
  • Nie męcz się za bardzo. Szybkość wykonywania nie jest wszystkim.

Trzeba podkreślić, że ostatni punkt jest dosyć znaczący. Przez cały kurs tego rozdziału, przerobiliśmy tę funkcję tak, aby działała trzy razy szybciej i zaoszczędziliśmy 20 sekund na 1 milion wywołań tej funkcji. Wspaniale! Ale pomyślmy teraz: podczas wykonywania miliona wywołań tej funkcji, jak długo będziemy musieli czekać na połączenie bazy danych? Albo jak długo będziemy czekać wykonując operacje wejścia/wyjścia na dysku? Albo jak długo będziemy czekać na wejście użytkownika? Nie marnuj za dużo czasu na czasową optymalizację jednego algorytmu. Pobaw się bardziej nad istotnymi fragmentami kodu, które mają działać szybko, następnie popraw wyłapane błędy, a resztę zostaw w spokoju.