V JVM se nejvice pouzivaji GC zalozene na kopirovani zivych objektu z jedne casti heapu do jine (ted zjednodusuji). [...] Resenim pravepodobne budou pauseless GC, jeden se ted prave vyviji, uvidime pristi rok.
To měl být opravdu jenom ilustrační příklad, jak vlastnosti jazyka můžou mít dalekosáhlé důsledky pro VM. Jestli by něco principielně podobného mohlo nastat u nějakého jazyka nad JVM (změna oproti javě), to neumím posoudit. Jenom jsem chtěl říct, že čistě hypoteticky si to představit umím.
P.S. nedávno jsem se díval na špičkovou přednášku na téma JVM, to by někoho mohlo zajímat:
http://www.youtube.com/watch?v=d2XcO8LQe_sErlang ma tedy GC zalozeny na pocitani referenci?
Pokud vím, tak v principu ano. Asi s nějakými vychytávkami navíc, nevím, nikdy jsem to nepotřeboval řešit.
Ale musi resit fragmentaci heapu ne? nebo to nechava "konovi" jako dalsi jazyky?
No tak hlavně heap je per-proces a velká část erlang-procesů má v typickém programu krátký život. Takže spousta heapů se prostě zahodí s koncem života procesu. Víc řešit je potřeba jenom dlouhotrvající procesy, které alokují větší množství paměti. Jak přesně to probíhá, nevím, určitě to půjde vygooglit. A pokud jde o alokaci paměti pro jednotlivé procesy z celkového poolu, tak to taky nevím

Ten příklad jsem dal jako fakt jenom ilustraci principu, GC jsem v Erlangu nikdy řešit nepotřeboval, protože mi prostě nikdy klacek pod nohy nehodil (jediná výjimka jsou nebezpečné memory leaky přes substringy, podobně jako v javě, ale to se mi taky nikdy osobně nestalo, jen jsem o tom četl, že je potřeba si na to dát pozor...)