CefSharp(chromium)javascript增加内存限制

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (1191)

我有一个通过显示大量数据报告来利用大量内存的Web应用程序。应用程序从ajax调用到php脚本获取所需的最少信息,然后处理所有内容并保存在内存中。

有些报告太大,以至于浏览器在达到PC的内存限制(5GB / 8GB免费)之前崩溃......所以我用C#CefSharp创建了一个浏览器应用程序,我正在寻找增加内存大小的方法,所以它不会崩溃。

我尝试尽可能地最小化数据并尽可能地使用引用(没有重复值),并且整个报告必须在内存中,以便用户可以正确地搜索和导航。这些报告的日期范围最长可达3个月,因此我不会给他们提供所有时间报告。

我已经看到一些线程告诉我应该通过传递args和类似的东西来增加jsHeapSize,但我不知道该怎么做以及它是否会起作用。

如何增加CefSharp组件的内存限制?

谢谢。

提问于
用户回答回答于

好吧,伙计们,我已经想出了解决方案。

将这些参数传递给chrome可执行文件以将javascript内存限制设置为16GB时,chrome会将其设置为3.5GB。

--js-flags="--max_old_space_size=16384"

似乎将内存大小设置为高于3.5 GB的任何内容都会导致Chrome将其设置为3.5 GB,因此不允许更高的限制。

但是,在CefSharp(嵌入铬)中,此限制不存在。使用此代码:

CefSettings settings = new CefSettings();
settings.CefCommandLineArgs.Add("--js-flags", "--max_old_space_size=16384");

我可以将CefSharp组件的最大内存限制设置为16gb,并且它不会再崩溃。

扫码关注云+社区

领取腾讯云代金券