我有一個本機C++應用程序,我正在調用.net dll(外部函數),我發現當我打電話給託管時,它分配完整的堆棧分配對於使用/ stack連接器選項指定的線程,但是如果我只進行本機函數調用,它會分配計算所需的堆棧。混合模式下的內存使用過多C++/CLR應用程序
下面是我的觀察
當我們調用.Net外部函數時,還有一些額外的線程與GC有關。與我們不調用.Net外部函數的情況相比,我們的應用程序中的線程也使用了更多的堆棧空間。我不確定託管堆棧是否位於本地堆棧之上。有人可以幫助我理解爲什麼當我們調用.Net外部函數以及混合模式應用程序中的內存管理時,爲線程分配了全部堆棧。