C#Selenium Screenshot.SaveAsFile - 不释放内存

时间:2016-04-22 02:10:38

标签: c# performance selenium memory-leaks

我有以下代码用于截取网页并将其保存到文件

Screenshot screenshot = ((ITakesScreenshot)WebDriver).GetScreenshot();
screenshot.SaveAsFile($"{fileFullName}.png", ImageFormat.Png);

调试时,在VS Performace窗口中,我可以看到在调用SaveAsFile()时内存跳转大约70-100MB(取决于页面大小),即使方法完成执行也不会释放。

有没有办法强制屏幕截图对象处理?

1 个答案:

答案 0 :(得分:0)

您可以通过调用GC.Collect来强制执行垃圾收集。但是,出于explained here的原因,您不应该这样做。

.NET自动处理释放未被引用的未使用对象的内存。垃圾收集强制所有线程在发生时停止,因此经常调用它会对应用程序产生影响。