To może wydawać się dziwnym pytaniem dla niektórych z was.
Jestem hobbystycznym programistą Java. Opracowałem kilka gier, program AI, który tworzy muzykę, inny program do malowania i podobne rzeczy. To znaczy, że mam doświadczenie w programowaniu, ale nie w profesjonalnym rozwoju aplikacji biznesowych.
Na tej stronie dużo mówi się o wydajności. Ludzie często dyskutują o tym, który algorytm byłby najskuteczniejszy w języku C # do wykonania zadania lub dlaczego Python działa wolno, a Java szybciej itp.
Próbuję zrozumieć: dlaczego to ma znaczenie?
Rozumiem, że istnieją szczególne obszary obliczeń, w których rozumiem, dlaczego wydajność ma znaczenie: gry, w których dziesiątki tysięcy obliczeń odbywają się co sekundę w pętli ciągłej aktualizacji, lub systemy niskiego poziomu, na których polegają inne programy, takie jak systemy operacyjne i maszyny wirtualne itp.
Ale w przypadku normalnej, typowej aplikacji biznesowej na wysokim poziomie, dlaczego wydajność ma znaczenie?
Rozumiem, dlaczego to miało znaczenie, dekady temu. Komputery działały znacznie wolniej i miały znacznie mniej pamięci, więc trzeba było dokładnie przemyśleć te rzeczy.
Ale dzisiaj mamy tak dużo pamięci do stracenia, a komputery są tak szybkie: czy faktycznie ma znaczenie, czy konkretny algorytm Java to O (n ^ 2)? Czy rzeczywiście zrobi to różnicę dla użytkowników końcowych tej typowej aplikacji biznesowej?
Kiedy naciśniesz przycisk GUI w typowej aplikacji biznesowej i za kulisami wywołuje on algorytm O (n ^ 2), w dzisiejszych czasach nowoczesnego komputera - czy faktycznie odczuwasz nieefektywność?
Moje pytanie jest podzielone na dwie części:
- W praktyce dzisiaj wydajność ma znaczenie w typowym normalnym programie biznesowym?
- Jeśli tak, proszę podać rzeczywiste przykłady miejsc w takiej aplikacji, w których ważna jest wydajność i optymalizacje.