【发布时间】:2023-03-05 08:10:01
【问题描述】:
我一直在徘徊 3rd 沙盒内存泄漏的最佳方法 从 .Net 框架中使用方库时。
我有一个用 C++/cli 编写的第三方库,它会泄漏大量内存。
有没有人发现了一种优雅的清理方法 使用 .Net 的非托管内存泄漏?
最好的问候,
【问题讨论】:
-
最好的方法是向库的供应商提供错误报告,并让他们修复它。或者你只是使用了错误的 API?也许您忘记在 API 中调用“释放”或“关闭”函数?
-
即使从非托管代码中,您将如何清理它?如果您有内存泄漏并且没有指向内存的指针,那么您无法释放/删除它。
-
修复库?说真的,您不应该依赖损坏的库。即使您可以“清理”内存,库也可能会调用未定义的行为。
-
c++ dll代码是我写的,但是有点大所以不能添加
-
你怎么知道内存泄漏是库的责任?听起来您已经习惯了托管内存 :) 您必须研究 API 以确定哪些内存是您的责任,哪些由库保留。
标签: c# memory-leaks c++-cli