Posted By: Quasimodo (Quasimodo) on 'CZprogram'
Title: Jeste GC
Date: Tue Nov 16 21:43:45 2004
Zdar,
opet neco lehce nechapu. Napsal jsem si dalsi testovaci programek, ktery je
prakticky shodny v C#, jave a c++. Opet vytvari hromady ruzne velkych
objektu, kazdy si naalokuje pamet, udela kus prace a skonci. V C++ navic je
destruktor, ktery pamet dealokuje, v C# a jave jsem se spolehl na GC.
C++ a C# bezi par hodin v pohode a pak regulerne skonci. Java
bezi cca 10 minut a umre, ze ji dosla pamet. Pritom v tom programku
garantuju, ze nikdy nebude alokovano najednou vice nez 400MiB pameti (hraju si
s tim na stroji s 512MB). Je mozne, ze system, kdyz mu dojde pamet radeji
ohlasi chybu a zhavaruje, nez aby zavolal GC a nejakou si uvolnil? Nebo jsem
narazil na nejake omezeni javy, kolik pameti celkem muze alokovat?
athlon:~ # java -version
java version "1.4.2_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05)
Java HotSpot(TM) Client VM (build 1.4.2_04-b05, mixed mode)
-
Clovek je nejpomalejsi zname zarizeni typu I/O.
Quasimodo