[Gc] What's difference in GC between Windows version and WinCE version?

biosli biosli at hotmail.com
Tue Sep 28 03:13:05 PDT 2010


I use GC in my program both Windows version and WinCE version. The code is same.

When I exit program, I call function GC_dump print memory infomation.

The windows version print as:
***Static roots:
>From 00410000 to 00411000 (temporary)
...
>From 7D79F000 to 7D7A5000 (temporary)
Total size: 700416

***Heap sections:
Total heap size: 6356992
Section 0 from 00EB0000 to 00EB4000 1/16 blacklisted
Section 1 from 01A00000 to 01A04000 0/16 blacklisted
Section 2 from 01A20000 to 01A24000 0/16 blacklisted
Section 3 from 01A30000 to 01A35000 0/20 blacklisted
Section 4 from 01A40000 to 01A46000 0/24 blacklisted
Section 5 from 01A50000 to 01A58000 0/32 blacklisted
Section 6 from 01B70000 to 01B7B000 0/44 blacklisted
Section 7 from 01B80000 to 01B91000 0/68 blacklisted
Section 8 from 01BA0000 to 01BB4000 0/80 blacklisted
Section 9 from 01E20000 to 01E3B000 0/108 blacklisted
Section 10 from 01E40000 to 01E64000 0/144 blacklisted
Section 11 from 01E70000 to 01EA0000 0/192 blacklisted
Section 12 from 01F20000 to 01F60000 0/256 blacklisted
Section 13 from 01CD0000 to 01D2B000 0/364 blacklisted
Section 14 from 02060000 to 020E4000 0/528 blacklisted
Section 15 from 020F0000 to 021A0000 0/704 blacklisted
Section 16 from 021D0000 to 022AA000 0/872 blacklisted
Section 17 from 022D0000 to 023F3000 0/1164 blacklisted
Section 18 from 02410000 to 02596000 5/1560 blacklisted

***Free blocks:
	...
Free list 60:
	022EBC00 size 595968 not black listed
	02489800 size 1099776 partially black listed
Total of 6221824 bytes on free list

***Blocks in use:
(kind(0=ptrfree,1=normal,2=unc.):size_in_bytes, #_marks_set)
...
blocks = 130, bytes = 135168

The winCE version as:
***Static roots:
>From 001DB000 to 00205000 (temporary)
...
>From 01FFC000 to 01FFD000 (temporary)
Total size: 389120

***Heap sections:
Total heap size: 6602752
Section 0 from 00368000 to 0036C000 1/16 blacklisted
Section 1 from 00430000 to 00434000 0/16 blacklisted
Section 2 from 00438000 to 0043C000 0/16 blacklisted
Section 3 from 00540000 to 00545000 1/20 blacklisted
Section 4 from 00545000 to 0054B000 0/24 blacklisted
Section 5 from 00550000 to 0055B000 0/44 blacklisted
Section 6 from 00560000 to 00576000 0/88 blacklisted
Section 7 from 00680000 to 00693000 0/76 blacklisted
Section 8 from 006A0000 to 006BA000 0/104 blacklisted
Section 9 from 006C0000 to 006E2000 1/136 blacklisted
Section 10 from 006F0000 to 0071E000 0/184 blacklisted
Section 11 from 00720000 to 00763000 1/268 blacklisted
Section 12 from 00770000 to 007C3000 0/332 blacklisted
Section 13 from 007D0000 to 00850000 0/512 blacklisted
Section 14 from 00850000 to 008FA000 0/680 blacklisted
Section 15 from 00900000 to 009E2000 7/904 blacklisted
Section 16 from 009F0000 to 00B1E000 0/1208 blacklisted
Section 17 from 00C20000 to 00DE7000 20/1820 blacklisted

***Free blocks:
Free list 1:
	00850400 size 1024 not black listed
	...
Free list 36:
	00804000 size 69632 not black listed
	007E1000 size 69632 not black listed
	007A0400 size 69632 not black listed
Free list 60:
	00C20400 size 282624 partially black listed
	0095BC00 size 287744 partially black listed
	00CD1800 size 1136640 partially black listed
Total of 3818496 bytes on free list

***Blocks in use:
(kind(0=ptrfree,1=normal,2=unc.):size_in_bytes, #_marks_set)
..........
blocks = 2109, bytes = 2784256

When program exit. Windows version, Blocks in use is 135168 bytes. WinCE version
is 2784256 bytes.

My question is:
What make that size so different?

Best regards,
biosli



More information about the Gc mailing list