c# – 内存溢出:越来越多的Microsoft.CSharp.RuntimeBinder.Sem
在我们的应用程序中,我们正在搜索一些内存泄漏,当进行一些操作(在我们的应用程序中加载和关闭一个项目)时,我们知道内存总是增加一点.
我们已经找到了很多,但现在,10个最多的类是(根据我们的工具,ANTS Memory Profiler 8.2): > Microsoft.CSharp.RuntimeBinder.Semantics.SYMTBL键 不幸的是,我不是这样,所以我有点难以找到我应该如何释放. 我检查了实例树,但它一直与微软的东西. 问题是,当我们做一个项目的“开放/关闭”时,我们经历了很多(大部分)我们的代码. 编辑我们的一个应用程序的一部分使用动态关键字的一些资源,它可能被链接.这里的课不是一次性,我应该和他们做些特别的事吗? 编辑2 我很确定这与我的动态内容相关,似乎C#在使用动态时创建缓存.但是目前我不知道为什么它会增长(我一直加载相同的类,我一直都有完全相同的签名),也不知道如何清除这个. 解决方法
动态关键字应该很少使用,因为在大多数情况下,可以发现不需要解决方法.
根据您的应用,最好的建议是仔细考虑如果您可以设计您的解决方案,以避免动态. 鉴于您真的需要使用动态,我建议您调整代码,并找出哪些部分是最多的内存消耗. 对于未知类型的调用方法有很多不同的ways,测量和调整瓶颈是要走的路. PS:另外,发布一些代码片段有很多帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |