gpt4 book ai didi

C#/C++ - 内存泄漏

转载 作者:行者123 更新时间:2023-11-30 03:08:01 25 4
gpt4 key购买 nike

我在生产中有一个 C++ DLL(没有可用于 C++ DLL 的源代码/.pdb)。它由使用 P/Invoke 机制的 C# 应用程序调用。现在,C++ DLL 中存在泄漏。而且,在执行 20-22 次后,应用程序每次都会崩溃。现在,我该如何优雅地处理这个问题,以便我继续使用 C# App 泄漏的 C++ DLL?

最佳答案

在我看来,如果修改/替换 c++ dll 是绝对不可能的,并且您确定 PInvoke 层没有问题,那么如果性能仍然可以接受,唯一的选择是隔离 可执行文件中的 dll 调用通过一些 IPC(例如 Remoting)与主程序通信,因此您可以在托管进程中强制回收。仅当您调用 c++ dll 的方式不太精细时,此方法才有效。以尽可能少的努力做到这一点的一种方法是创建一个托管 C++ 调用的 web 服务(如果就性能而言,将 C++ 作为 web 服务调用总是可行的),将其托管在一个特殊的应用程序域并为其指定基于内存量的回收。如果这不可能,SeeSharp 在他下面的评论中提出的解决方案可能是最好的解决方案。

关于C#/C++ - 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5452316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com