![]() |
1
3
好吧,定稿人 缓冲器 永远不会跑。很难看出这有什么关系,如果它是一个里面有任何有趣的东西的物体,你就无法把它钉住。 它是 非常 对垃圾收集器不友好的是,它必须不断地绕过障碍,并且不能很好地压缩堆,从而使您的应用程序能够最好地使用CPU缓存。尤其糟糕的是,如果它是在0代,它将是。 很少有好的理由让GC这么困难,只需分配 真实的 无法移动的记忆。使用Marshal.alloctaskmem()和Marshal.StructureToPtr()(如果需要)。现在你 做 卸载AppDomain时释放内存并不会终止进程。那个人会死的。 但请注意,AppDomain的生命周期是 不 以任何方式与非托管代码的生存期关联。加载的DLL不会与AppDomain一起卸载。从您的问题中不清楚这个非托管代码是否仍然可以使用该缓冲区,因为它仍然存在。如果是,那就是 真正地 重要的是不要使用固定记忆。 |
![]() |
2
2
当
前几天读到他们实际上在
|
![]() |
3
0
一旦你的应用退出,你需要确保所有
非受管的
资源被释放。
不松开别针
|
![]() |
codeforester · 测量GC暂停时间的最佳方法是什么? 7 年前 |
![]() |
Venki WAR · 需要解释G1的并行完整GC 7 年前 |
![]() |
Stephan_Berlin · 为什么CMS系列中的初始标记阶段 7 年前 |
![]() |
Bonsaisteak · 为什么年轻一代需要三个区域来收集垃圾? 7 年前 |
![]() |
goks · 如何清除熊猫的数据帧内存? 7 年前 |