我想用 c# 编写以下代码。 a) 模拟内存泄漏的小型控制台应用程序。 b) 小型控制台应用程序,它将调用上述应用程序并立即释放它,以模拟管理内存泄漏问题..
换句话说,(b) 应用程序将不断调用和释放应用程序 (a) 来模拟“叛逆”内存泄漏应用程序是如何被遏制的,而没有解决应用程序 (a) 的根本原因。
应用程序 (a) 和 (b) 的一些示例代码会很有帮助。
谢谢
最佳答案
泄漏的应用程序可能如下所示:
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.
}
}
调用应用程序可能如下所示:
public static void Main()
{
Process process = Process.Start("leaker.exe");
process.Kill();
}
看看properties on the Process类(class)。有几个返回进程消耗的内存量。您也许可以使用其中之一来有条件地终止该进程。
关于c# : simulate memory leaks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3019239/