W dniu 10.11.2012 22:21, Grzegorz Niemirowski pisze:
> Ale to wcale nie jest takie śmieszne. 8 GiB kosztuje 200 zł i nie trzeba być fascynatem żadnego z tych środowisk (ja nie jestem, często programuję procesory, które mają 1 kB RAM, nawet dziś mi
> przypadło) aby uznać to za kwotę niewielką. Poza tym przypomina mi się http://thedailywtf.com/Comments/That-Wouldve-Been-an-Option-Too.aspx
Bardzo dobrze, że 8 GiB RAM kosztuje 200 zł, bo to pozwala
realizować zastosowania, które kiedyś były nierealne. Na
przykład na komputerze, z którego piszę tę wiadomość (wypo-
sażonym właśnie w 8 GiB RAM) mogę mieć uruchomione dwie ma-
szyny wirtualne z Windows, a na podstawowym Linuksie jesz-
cze mnóstwo innych programów, w tym tak duże jak Firefox i
Thunderbird -- a komputer wciąż działa sprawnie i może uru-
chamiać więcej oprogramowania. Kiedyś 400 MiB użycia pliku
wymiany było normą w komputerze z 256 czy 512 MiB RAM, więc
jeżeli tyle jest używane przy 8 GiB RAM to znaczy, że w za-
sadzie w pliku wymiany sÄ… tylko strony faktycznie niepot-
rzebne.
Ale pamiętaj, że *RAM to nie wszystko*. Są jeszcze pamięci
podręczne, których nie da się rozszerzyć. Są interfejsy
urządzeń zewnętrznych, które mają ograniczone przepusto-
wości. Im więcej stron pamięci, tym więcej wymian z dyskiem
(SSD może pomóc, ale nie jest panaceum!), tym więcej nietra-
fień pamięci podręcznej, tym więcej błędów translacji TLB,
tym więcej źle przewidzianych skoków warunkowych. W efekcie
nawet jeżeli cały kod programu będzie w dużym RAM, to pro-
gram 10x większy będzie działał o kilka-kilkanaście pro-
cent wolniej, niż 10x mniejszy.
Pisałem zresztą o tym już dawno temu (2006 rok!):
http://www.grush.one.pl/article.php?id=gigabajty
Dlatego od lat uważam - wbrew trendom - że oprogramowanie
powinno być *w miarę możliwości* oszczędne, małe i szybkie.
I choć faktycznie zacytowana przez Ciebie opowieść ma pe-
wien sens, bo rozszerzenie pamięci byłoby rozwiązaniem, to
zgadzam się, że prosty system webowy *nie ma prawa* zużywać
więcej niż kilkanaście-kilkadziesiąt megabajtów pamięci.
Dokładanie zasobów do programów po prostu spartolonych to
paniczny ratunek (*), a nie rozwiÄ…zanie.
Z takich ciekawostek z własnego podwórka, ostatnio siedzę
nad zadaniem obliczeniowym, którego czas rozwiązania mierzo-
ny był w dniach lub tygodniach. Po pierwsze przepisałem al-
gorytmy w C++ (z MATLABa) i od razu uzyskałem zejście do
czasów godzinowych, ewentualnie liczonych w dniach. I tu
by można zaprzestać, bo program się ślicznie zrównolegla,
więc można by kupić procesor 8-rdzeniowy 3 GHz (testuję na
3-rdzeniowym 2 GHz) i uzyskać 200%-300% przyspieszenia. Ale
siadłem do analizy algorytmów, poprawiłem parę rzeczy, usu-
nąłem niepotrzebne obliczenia zastępując je stabelaryzowa-
nymi wynikami lub wręcz warunkowym podawaniem wartości sta-
łej w asymptotach i uzyskałem mniej więcej 500% przyspie-
szenia *na tym samym sprzęcie* po kilku dniach pracy. Pozo-
stawiam do rozważania Czytelników, czy to się opłacało (tym
bardziej, czy by się opłacało jakiejś firmie), ale mnie to
zaoszczędzi teraz wielu dni obliczeń i wyraźnie zwiększy
komfort pracy (zamiast czekać całą dobę na wyniki ekspery-
mentu mogę mieć je już wieczorem lub nawet po kilku godzi-
nach).
---------
(*) W tym momencie przypomina mi siÄ™ tylko Chamberlain i
jego "przywiozłem wam pokój". Rozwiązanie problemu wy-
dajności przez dołożenie RAM i wymianę procesora to
mniej więcej tej klasy rozwiązanie :)
-- |""""""""""""""""""""""""""""""""""""""""""""""""""""""""""| | Radosław Sokół | http://www.grush.one.pl/ | | | | \........................................................../Received on Sun 11 Nov 2012 - 12:00:06 MET
To archiwum zosta³o wygenerowane przez hypermail 2.2.0 : Sun 11 Nov 2012 - 12:42:01 MET