c#:模拟内存泄漏

dot*_*ner 11 c# memory memory-leaks

我想在c#中编写以下代码.a)模拟内存泄漏的小型控制台应用程序.b)小型控制台应用程序,它将调用上述应用程序并立即释放它,模拟管理内存泄漏问题.

换句话说,(b)应用程序将连续调用和释放应用程序(a)以模拟"反叛"内存泄漏应用程序如何被包含而不解决应用程序(a)的根本原因.

应用程序(a)和(b)的一些示例代码将非常有用.

谢谢

Bri*_*eon 14

泄漏的应用程序可能如下所示:

public static void Main()
{
  var list = new List<byte[]>();
  while (true)
  {
    list.Add(new byte[1024]); // Change the size here.
    Thread.Sleep(100); // Change the wait time here.
  }
}
Run Code Online (Sandbox Code Playgroud)

调用应用程序可能看起来像:

public static void Main()
{
  Process process = Process.Start("leaker.exe");
  process.Kill();
}
Run Code Online (Sandbox Code Playgroud)

看一下Process类的属性.有几个返回进程消耗的内存量.您可以使用其中一个来有条件地终止进程.