Istnieje wiele badań porównawczych i dostępnych online, jeśli chodzi o wydajność środowiska wykonawczego aplikacji zbudowanych w tym lub innym języku. Niektóre napędzane przez korporacje, niektóre akademickie, niektóre tylko osobiste raporty z eksperymentów.
Dostajemy również przyzwoity udział w badaniach porównawczych dotyczących skutków ubocznych języka programowania i jego narzędzi, takich jak:
- czasy budowy
- prawdopodobieństwo wykrycia błędu poprodukcyjnego,
- moc ekspresyjna,
- itp...
Jednak ostatnio coraz bardziej dziwi mnie zużycie pamięci przez moje programy bardziej niż cokolwiek innego. Może to wynikać z faktu, że chociaż prawo Moore'a jest po naszej stronie w kwestii surowej wydajności, zdaliśmy sobie sprawę, że inne wąskie gardła mają większe znaczenie. To, i nie mam tendencji do aktualizacji mojego sprzętu co jakiś czas, i mam trochę „starych” (czytaj Pentium 4 3.6GHz 2005-2006 z 4 GB pamięci RAM), które w dzisiejszych czasach są trudne do użycia w dużych aplikacjach bez wymagając ode mnie wielkiego wysiłku, aby wycisnąć z nich każdy kawałek soku (wybór systemu operacyjnego, interfejsu użytkownika, ulepszenie usług i demonów, wybór aplikacji do wykonania zadania lub innego ...). Szczerze mówiąc, czasami odpalam top
lub procexp
płaczę na widok pamięci wykorzystywanej przez najbardziej niewinne programy.
Mogę rozwiązać ten problem, pchając się w kierunku podanym powyżej i zasadniczo próbując ograniczyć siebie i programy, z których korzystam (chyba z tego powodu mam wielką miłość do programów cli), ale nie mogę się powstrzymać od myślenia że może robimy to źle.
Nowoczesne narzędzia dla współczesnych potrzeb
Oczywiście języki wyższego poziomu są prawdopodobnie lepsze i uzasadniają ich wartość ciężaru własnego. Pewnych wyborów projektowych dokonano wtedy z dobrych (lub podobno dobrze zaplanowanych) powodów, w wielu łańcuchach narzędzi. Współdzielone biblioteki, modele pamięci, procesory wstępne, systemy typów itp. Ale niektóre mogą być bardziej opłacalne niż inne dzięki naszemu nowoczesnemu sprzętowi i chętnie przeczytam kilka poważnych badań na ten temat.
Moje pytanie brzmi zatem: czy wisi w grze Benchmarks Game i innych, które koncentrują się na porównaniu podstawowego zużycia pamięci przez środowisko wykonawcze języków?
Co więcej, czy istnieją badania porównujące to z innymi parametrami (podobnie jak w tym artykule , na przykład w przypadku innych kryteriów, również opartych na grze Benchmarks )?
How much memory consumption makes you weep?
30 MB dla nieaktywnej karty Chrome bez rozszerzeń, 100 MB dla CCC ATI, nawet 11 MB dla nieaktywnej wtyczki googletalk lub 23 MB dla nieaktywnego sterownika drukarki. Te rzeczy i wiele innych. Przykład chromu jest trochę poza parkiem, ponieważ jest bardziej złożonym przykładem, ale inne już mnie dość zaskakują.