digitalmars.D - Garbage collector
- Paolo Invernizzi (12/12) May 30 2006 Hi all,
- Daniel Keep (16/33) May 30 2006 Well, I can only think of a few possibilities:
- Tom S (12/39) May 30 2006 There's the fourth option => std.gc.disable is not implemented.
- Daniel Keep (9/44) May 30 2006 HAHAHAHA. Oh, I wasn't expecting that one... Hopefully that gets fixed
- Tom (4/10) May 30 2006 --
Hi all, DMD 0.159 win32, Why I don't see my memory exploding while the program is running? int main(char[][] argv) { std.gc.disable(); for (int i=0; i < 1000000; i++) { byte[] a = new byte[10000000]; } } Thanks! --- Paolo Invernizzi
May 30 2006
Paolo Invernizzi wrote:Hi all, DMD 0.159 win32, Why I don't see my memory exploding while the program is running? int main(char[][] argv) { std.gc.disable(); for (int i=0; i < 1000000; i++) { byte[] a = new byte[10000000]; } } Thanks! --- Paolo InvernizziWell, I can only think of a few possibilities: 1. DMD is (for some reason) still collecting the old arrays. 2. DMD is smart enough to omit that line entirely since it knows you're not using it. 3. You have 9 terabytes of RAM. The only other thing I can think of is that the program is crashing, but not telling you. Have you verified that the program is getting past that for loop? -- Daniel -- Unlike Knuth, I have neither proven or tried the above; it may not even make sense. v2sw5+8Yhw5ln4+5pr6OFPma8u6+7Lw4Tm6+7l6+7D i28a2Xs3MSr2e4/6+7t4TNSMb6HTOp5en5g6RAHCP http://hackerkey.com/
May 30 2006
Daniel Keep wrote:Paolo Invernizzi wrote:There's the fourth option => std.gc.disable is not implemented. I was also curious about this, so I checked the source and std.gc.disable/enable only seem to increment/decrement one variable that is never used... -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M d-pu s+: a-->----- C+++$>++++ UL P+ L+ E--- W++ N++ o? K? w++ !O !M V? PS- PE- Y PGP t 5 X? R tv-- b DI- D+ G e>+++ h>++ !r !y ------END GEEK CODE BLOCK------ Tomasz Stachowiak /+ a.k.a. h3r3tic +/Hi all, DMD 0.159 win32, Why I don't see my memory exploding while the program is running? int main(char[][] argv) { std.gc.disable(); for (int i=0; i < 1000000; i++) { byte[] a = new byte[10000000]; } } Thanks! --- Paolo InvernizziWell, I can only think of a few possibilities: 1. DMD is (for some reason) still collecting the old arrays. 2. DMD is smart enough to omit that line entirely since it knows you're not using it. 3. You have 9 terabytes of RAM.
May 30 2006
Tom S wrote:Daniel Keep wrote:HAHAHAHA. Oh, I wasn't expecting that one... Hopefully that gets fixed at some point :P -- Daniel -- Unlike Knuth, I have neither proven or tried the above; it may not even make sense. v2sw5+8Yhw5ln4+5pr6OFPma8u6+7Lw4Tm6+7l6+7D i28a2Xs3MSr2e4/6+7t4TNSMb6HTOp5en5g6RAHCP http://hackerkey.com/Paolo Invernizzi wrote:There's the fourth option => std.gc.disable is not implemented. I was also curious about this, so I checked the source and std.gc.disable/enable only seem to increment/decrement one variable that is never used...Hi all, DMD 0.159 win32, Why I don't see my memory exploding while the program is running? int main(char[][] argv) { std.gc.disable(); for (int i=0; i < 1000000; i++) { byte[] a = new byte[10000000]; } } Thanks! --- Paolo InvernizziWell, I can only think of a few possibilities: 1. DMD is (for some reason) still collecting the old arrays. 2. DMD is smart enough to omit that line entirely since it knows you're not using it. 3. You have 9 terabytes of RAM.
May 30 2006
Daniel Keep escribió:LOL!!! :')[snip]3. You have 9 terabytes of RAM.[snip]-- Tom;
May 30 2006