Odpovídáte na názor ke článku Automatická správa paměti deterministicky.
Radim se mezi pseudoexperty kteri maji na vec pseudoodborne nazory. Clanek i reakce vyznivaji jako "GC (ve smyslu tracing GCs) akorat zerou pamet, reference counting je stejne dobry, deterministicky a jediny (maly) problem jsou cyklicke reference => full GC je dneska nepotrebny". Rad bych vyjadril svuj pseudonazor, ktery neni - jak asi tusite - zcela souhlasny.
1) "...téměř neexistují úniky paměti - memory leaks" - nesouhlasim tak zcela. Zalezi jak definujete memory leak. Pokud je to "pamet, ktera je referencovatelna" pak ano. Pokud je to "pamet, ktere je alokovana a program ji uz nepouziva", pak ani GC nezaruci, ze zadne memory leaks nejsou...
2) Reference counting ma i jine stinne stranky nez cyklicke reference. Kazde prirazeni znamena 2x load-inc/dec-store navic. Alokace/Dealokace je take relativne draha (predpokladam pouziti podobneho alokatoru jako je malloc. Navic dochazi k fragmentaci pameti. Naproti u modernich "plnotucnych" GC je alokace inkrement pointeru. Dealokace smeti je zadarmo, co stoji cas a energii je to co prezije :-) Pochopitelne, prirazeni je obycejny store ve vsech pripadech. Problem s fragmentaci temer odpada v novych generacich, v tech starsich neni zas takovy problem udelat compact. Neni to tak cernobile.
3) Ze plnotucny GC implikuje velkou spotrebu pameti je do jiste miry povera zavinena Javou. Ano, Java zere hodne. Delam na systemu/VM co ma plnotucny GC (neni to ani JVM ani CLR :-), pod tim beha pomerne velke IDE (rekneme neco podobneho NB/Eclipse). Po tydnu behu IDE (pocitac jen uspavam :-) je bezna velikost okupovane pameti kolem 100-150MB (vyvijene aplikace bezi v ramci stejne VM jako IDE). Jakmile v ramci stejne VM pustim hello world v Jave (za pomoci OpenJDK rt.jar) - velikost alokovane pameti vzroste o cca 70-100MB - GC se pouziva stale stejny, objektovy model je stejny. Muj zaver z toho je, ze mozna v Java neni GC vykrik vedy, ale hodne dela i zakladni knihovna a GC ve spotrebe pameti muze byt i v nevine.
Kazda strana ma dve mince :-)
P.S.: Problem s neuvolnovanou pameti na serveru s kombinaci Apache/WSGI/Python resim asi rok. Neuspesne :-)
Autor se zabývá vývojem kompilátorů a knihoven pro objektově-orientované programovací jazyky.
Přečteno 37 775×
Přečteno 26 421×
Přečteno 24 934×
Přečteno 21 278×
Přečteno 18 933×