Zawsze mnie zastanawiało co takiego developerzy ładują do aplikacji, że zajmują tyle miejsca na dysku, zużywają tyle RAM-u i tak obciążają CPU.
Taki Messenger na Windows 10. Rozmiar 150 MB na RS3, na RS4 nowsza wersja nawet 300 MB. Podczas używania obciąża CPU tak, że aż włączają się wentylatory w laptopie.
Albo taki iTunes, ponad 400 MB w wersji MS Store i ponad 1 GB w wersji normalnej.
Kiedyś to tyle zajmował cały system operacyjny. Taki Windows 95 np.
Już nie mówiąc, że na Commodore 64 developerzy byli w stanie w 64 kB RAM-u zmieścić grafikę, sondtrack i logikę gry, a jeszcze zostawało na system.
Żarty żartami, ale miniaturyzacja technologiczna ma obsługiwać coraz bardziej puchnące programy.
Sześć lat temu, to biuro apache miało ok 280MB. Dzisiaj ma prawie półtora GB. Coraz mniej procent możliwości programu jest możliwa do wykorzystania przez użytkownika.
Sam win 10 może być tylko w kilku procentach wykorzystany przez użytkownika (za dużo funkcji)… Znacznie więcej procent windowsa współużytkuje MS.
W dzisiejszych czasach jest “najpierw szybko, byle było”, a potem w changelogach chwalą się optymalizacją kodu i usprawnieniem działania, a że aplikacja puchnie, to chwalą się nowymi ficzerami, które są z dupy i niewidoczne gołym okiem
Tak serio, w mojej opinii, dzisiejsi programiści mają słabą wiedzę, oczywiście nie wszyscy, klepią kod, wykorzystując jakieś przerośnięte frameworki, a potem apka, która ważyłaby 10 - 20MB, waży 100 - 200MB.
1MB zajmuje program, 9MB ikonki, 280MB zajmuje super framework programistyczny dzięki któremu można zarówno stworzyć prostą aplikację jak i wysłać rakietę w powietrze.
Optymalizować powinno się najwęższe gardło. Jeśli miejsce jest cenne - optymalizuje się jego wykorzystanie. Zużycie pamięci - ograniczasz. Jeśli program ma działać szybko - optymalizujesz wydajność. Jeśli apka ma być tania w produkcji - optymalizujesz koszty. Jeśli ma być funkcjonalna - rozwijasz je. Nie można mieć wszystkiego, to typowy diagram “wybierz N z M możliwości” gdzie wszystkie M są konieczne, a N < M W naszych czasach RAM jest tani (także ten w telefonach), procesor też. Jak komuś się nie podoba że Messenger zacina, to odpowiedź jest “kup nowszy telefon”. Duże korporacje optymalizują koszty, a skoro tak, to na łeb lecą pozostałe metryki.
@anon42271672 ten framework sprawia, że apkę piszesz w 1000 godzin, a nie w 10000. Jeśli godzina pracy programisty kosztuje Cię 50$, to 9000 * 50$ = 450 000$ to nawet się długo nie zastanawiasz.
Serio, optymalizować to sobie może open source, apka napisana w C++ i WinApi, zajmuje 35KB i wykonuje pracę konkurencyjnej aplikacji w 0.3 zamiast 1.4 sekundy. Ale przy tym jest mało użyteczna bo zapisuje w jakimś egzotycznym formacie i żeby z jej efektów skorzystać trzeba dodatkowo konwertować pliki (z linii komend) i nagle cała optymalizacja bierze w łeb. W świecie komercyjnego oprogramowania jeśli optymalizacja Ci się nie opłaca to jej nie zrobisz.
@sadaj72 ten framework sprawia, że apkę piszesz w 1000 godzin, a nie w 10000. Jeśli godzina pracy programisty kosztuje Cię 50$, to 9000 * 50$ = 450 000$ to nawet się długo nie zastanawiasz.
To popatrz jak rozwijane są dzisiaj aplikację, nie ma komunikatora który jest wydawany raz na rok (przykładowo) aplikacje są rozwijane ciągle, czas zaoszczędzony na optymalizacji idzie w niepotrzebne funkcje. Aplikacja puchnie, pęcznieje aż do momentu gdy twórcy stwierdzają, że pora na zupełnie nowy program, a ten stary trzeba porzucić.
Serio, optymalizować to sobie może open source, apka napisana w C++ i WinApi, zajmuje 35KB i wykonuje pracę konkurencyjnej aplikacji w 0.3 zamiast 1.4 sekundy
Dobry żart, o ile są programy OS które sprawiają wrażenie świetnie zoptymalizowanych (np. blender) to jest całe mnóstwo zamulaczy które ledwo chodzą jak np. gnome3, gimp.
O, matko. GNOME 3 jest straszny. Miałem okazję tego używać na VM z Debianem na studiach. To jest całkowite wypaczenie mojego pojęcia jak powinien działać interfejs GUI.