現象
我正在使用 cefsharp + winform 建立一個桌面程序用於顯示網頁。使用過程中程序會突然白屏,經過觀察發現,在網頁顯示GIF動圖時,瀏覽器子程序會突然占用較高內存(從80M上升到400M左右)。白屏也是出現在這些顯示GIF的頁面時。
初步懷疑是內存占用過高,導致某個進程崩潰
一頓搜索操作,找到兩個可能可行的方案:
1. 提高js的最大內存空間(實測無效)
由於x86程序不能大於等於4096M,嘗試設置到4000M,依然出現問題
//修改cef參數
setting.CefCommandLineArgs.Add("--js-flags", "--max_old_space_size=2048");
2. 禁用屏外渲染最佳性能(有效)
禁用后,顯示GIF時不會再出現內存突然上升,目前也沒有出現白屏
https://github.com/cefsharp/CefSharp/issues/2811
//修改cef參數
setting.SetOffScreenRenderingBestPerformanceArgs();