CefSharp(chromium)JavaScript增加内存限制

时间:2019-03-11 10:03:30

标签: javascript c# chromium cefsharp chromium-embedded

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

一些报告是如此之大,以至于浏览器在达到PC的内存限制之前就崩溃了(免费5GB / 8GB)。因此,我使用C#CefSharp开发了一个浏览器应用,我正在寻找增加内存大小的方法,不会崩溃。

我尝试了最大程度地减少数据,并在所有可能的地方使用引用(没有重复的值),并且整个报表必须存储在内存中,以便用户可以正确地搜索和导航。这些报告的日期范围最长为3个月,因此我无法提供所有时间的报告。

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

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

谢谢。

1 个答案:

答案 0 :(得分:0)

好的,我为此提出了一个解决方案。

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

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

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

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

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

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