Ogólnie rzecz biorąc, najważniejszym rozwiązaniem problemu będzie to, które faktycznie istnieje i jest ważne dla przypadków, w których istnieją dla twojego problemu. Innymi słowy, unikaj przedwczesnej optymalizacji, dopóki nie dowiesz się, że masz nieefektywny kod lub wydajny kod, który musi być szybszy.
Nie zapominaj również, że najlepszym rozwiązaniem dla Twojej aplikacji może nie być ogólne rozwiązanie przypadku. Sprawa i punkt, kilka lat temu profesor dał naszej klasie problem, w którym mieliśmy wydrukować pierwsze 10 liczb danego typu (przepraszam, moja pamięć zawodzi mnie co do rodzaju, ale była to jedna z bardziej niezwykłych liczb klasy) i dostaliśmy test, aby sprawdzić, czy liczba jest danego typu. Taki był zakres problemu, który nam powiedziano, i powiedziano nam, że był to następny dzień, a najbardziej wydajne rozwiązanie otrzymało pełny kredyt. Następujący wykład profesor podsumował wyniki:
- Niektórzy uczniowie korzystali z prostej pętli i podanego wzoru, aby sprawdzić, czy liczby są prawidłowe i wyświetlały je, powoli, ale wykonali zadanie, O (n ^ 3).
- Inni studenci przeprowadzili badania i znaleźli formułę, która lepiej sprawdzała, czy dana liczba jest poprawna, programy te działały znacznie szybciej, O (n ^ 2).
- Jeden uczeń wykorzystał wolną formułę do wygenerowania wartości, a następnie skopiował je do stałej tablicy w kodzie i wyświetlił jej zawartość, O (n).
Ostateczne rozwiązanie zostało ocenione przez profesora jako najbardziej wydajne. Okazuje się, że problem był w rzeczywistości ćwiczeniem polegającym na pełnym zrozumieniu problemu, a nie tylko wychodzeniu i znajdowaniu najskuteczniejszego rozwiązania.
Chodzi o to, że jeśli chodzi o znalezienie skutecznego rozwiązania problemu, zazwyczaj lepiej jest poświęcić czas, aby upewnić się, że naprawdę rozumiesz, na czym polega problem, zanim odejdziesz i napiszesz kod lub spróbujesz zoptymalizować kod. Jeśli możesz przechowywać zestaw wartości referencyjnych w stałej tablicy, lepiej jest robić to z punktu widzenia wydajności niż próbować napisać jakiś wymyślny algorytm.
Podobnie nie zapominaj, że w przypadku większości aplikacji jedynymi osobami, które zwykle widzą nieefektywny kod (gdy nie jest to niepotrzebnie nieefektywny!), Są sami programiści. Jeśli napiszesz czysty kod, który robi dokładnie to, co musi zrobić, istnieje prawdopodobieństwo, że przez większość czasu użytkownicy nie zauważą problemów z wydajnością podczas pracy z twoim programem i po prostu optymalizują części, o których wspominają. ty.