SharpDX中手动释放大量缓冲区时应用冻结、内存未释放的问题求助
大家好,我在开发SharpDX应用时遇到了一个棘手的内存问题,具体是在释放Direct3D缓冲区时出的状况:
最开始我没有使用DisposeCollector,而是手动调用Dispose()方法来释放缓冲区。结果当需要释放的缓冲区数量达到20万左右时,我的应用直接冻结了。
之后我找了一个基于SharpDX的项目参考,这个项目原本是用DisposeCollector来管理资源的。我在这个项目里也复现了类似的内存问题,但有个关键的区别:
我观察到的现象:
- 在我自己的应用(未使用DisposeCollector):手动调用
Dispose()释放大量缓冲区时,应用会出现冻结情况。 - 在参考项目中:原本用DisposeCollector的时候运行一切正常,但当我把DisposeCollector去掉,改成和自己应用一样手动调用
Dispose()释放缓冲区时,也出现了类似的内存异常问题。
备注:内容来源于stack exchange,提问作者Fux
相关产品推荐
相关产品推荐

