2010-03-30 62 views
4

當XP上的VC6 C運行時無法在現有堆段中提供分配請求時,它將保留一個新段。這些新的細分市場的規模增加了2倍(直到沒有足夠大的空閒區域來做到這一點,此時它會下降到更小的細分市場。)您可以在XP上調整C運行時堆段預留大小嗎?

無論如何,有沒有什麼辦法可以控制這個在VC6運行時XP上的行爲?例如,加倍一點,但限制在64MB的細分市場。

如果在XP上沒有辦法,但是在7上,那也是很好的瞭解。或者,如果VC6上沒有辦法,但VC8或更高版本會很有趣。

回答

2

如果你想要特定的分配行爲,寫你自己的分配器。 VirtualAlloc等可以幫助你做到這一點。使用仍然支持的編譯器和CRT也會有所幫助。

+0

這是我害怕的答案。但它似乎是答案。謝謝。 – Jason 2010-04-05 18:24:01

+0

內置的堆並不意味着無限可調。這意味着足夠適用於各種各樣的情況。如果你需要特別的東西,你通常需要在虛擬機或堆上自行編寫代碼。你不指定爲什麼你需要這種行爲,所以很難給出完整的答案。儘管如此,VC的新版本並沒有實現自己的堆,而是使用操作系統堆,這意味着您可以從LFH和其他優勢中受益。 – Stewart 2010-04-11 12:35:02

相關問題