托管内存泄漏检测 - C#

Managed memory leak detection - C#

如何检测 C# 代码中的托管内存泄漏? 它是关于使用 openGL 渲染 3D 对象的 windowsform 应用程序。每次我重绘时都会发生内存泄漏。

根据DebugDiag tool的分析,"C:\Windows\System32\ig75icd32.dll"是内存泄漏的根源。
这是 openGL 还是我的代码中的错误?我该如何解决这个问题?

找到内存韭菜源了。这是因为 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。