我有一个本机C++应用程序,我正在调用.net dll(外部函数),我发现当我打电话给托管时,它分配完整的堆栈分配对于使用/ stack连接器选项指定的线程,但是如果我只进行本机函数调用,它会分配计算所需的堆栈。混合模式下的内存使用过多C++/CLR应用程序
下面是我的观察
当我们调用.Net外部函数时,还有一些额外的线程与GC有关。与我们不调用.Net外部函数的情况相比,我们的应用程序中的线程也使用了更多的堆栈空间。我不确定托管堆栈是否位于本地堆栈之上。有人可以帮助我理解为什么当我们调用.Net外部函数以及混合模式应用程序中的内存管理时,为线程分配了全部堆栈。