如何在c#代码中检测托管内存泄漏? 它是关于使用openGL渲染3D对象的windowsform应用程序。每次重绘内存泄漏都会发生。
根据使用DebugDiag tool进行的分析,“C:\ Windows \ System32 \ ig75icd32.dll”是内存泄漏的来源。
这是openGL或我的代码中的错误吗?我该如何解决这个问题?
答案 0 :(得分:1)
我找到了记忆韭菜来源。这是因为opneGL列表 在我的代码的一部分中,我有每个3D对象的代码
void UpdateList(){
_List = Gl.glGenLists(1);
Gl.glNewList(_List, Gl.GL_COMPILE);
Polygons.Draw();
Gl.glEndList();
}
这是一个循环(对象的循环更新列表)。为每个3D对象生成了很多列表,并且有许多活动对象。我改变了这样的代码
void UpdateList(){
if(_List==-1)
_List = Gl.glGenLists(1);
Gl.glNewList(_List, Gl.GL_COMPILE);
Polygons.Draw();
Gl.glEndList();
}
因此,每个3D对象只生成一个列表handel。