[Gc] Re: Re: What's difference in GC between Windows version and
WinCE version?
biosli
biosli at hotmail.com
Sat Oct 9 00:09:50 PDT 2010
Hi,Ivan!
Ivan Maidanski <ivmai at ...> writes:
>
> Hi!
>
> WinCE block allocation algorithm is a bit different from Win32.
>
> Try play with GC_FREE_SPACE_DIVISOR and GC_INITIAL_HEAP_SIZE.
>
Thanks a lot.
I set GC_FREE_SPACE_DIVISOR as 100, and GC_INITIAL_HEAP_SIZE as 5*1024*1024, the
program runs with less heap size than default value.
But memory is not release as Windows version.
In Windows version, I release used memory by GC_Free, it will move out form
"Blocks in use" immediately. In WinCE version, it's not.
So there are some further question, in WinCE version:
1. When heap size increace as a large size, the used memory in "Blocks in use"
seems "locked", it will not return to "Free blocks".
Is that means GC break?
2. I calls GC_dump() at program exit, I finds the lines, as following:
---------------------------------------------------------------
Free list 53:
01580000 size 208896 start black listed
01540000 size 208896 start black listed
01500000 size 204800 start black listed
014C0000 size 204800 start black listed
...............
Free list 60:
013E0400 size 570368 partially black listed
00A30000 size 282624 partially black listed
00C50400 size 303104 partially black listed
---------------------------------------------------------------
What are "start black listed" are "partially black listed" means?
Should I fix something makes it as "not black listed"?
3. Is there any other way, move out released memory form "Blocks in use"
immediately? If this done, question 1 will never happen.
Best regards.
biosli
More information about the Gc
mailing list