cef合并渲染进程

Posted Redrain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cef合并渲染进程相关的知识,希望对你有一定的参考价值。

转载请说明原出处,谢谢~~:https://blog.csdn.net/zhuhongshu/article/details/81485354

在使用cef时,默认情况下,每打开一个页面,就会创建一个新的Render进程。随着web页面数量的增加,创建大量Render进程,而进程太多会让客户反感,而且有时候为了一些小页面去开进程是很浪费资源的

其实cef是有多种开启进程策略的:

  • 可以渲染进程与主进程合并为一个进程,但是风险太大,不建议使用
  • 所有渲染进程合并为一个
  • 每个页面一个单独的渲染进程(默认策略,chrome也是这样)
  • 同一个域下的页面使用同一个渲染进程(比如所有https://test/开头的页面)

我最终渲染同一个域下的页面使用同一个渲染进程,可以比较合理的控制进程数量。在`OnBeforeCommandLineProcessing`增加`--process-per-site`配置选项来开启此功能,以后同一个域下的web页面就会使用同一个渲染进程

而这个功能正好配合上一篇里说的cef对本地web资源打包加密,这里用到的域恰好就是上一篇文章中用到的特征字符URL(多次调用AddArchiveProvider来添加多个特征字符对应的资源来源),可以自己把web资源划分为几个域。这样只要自己划分了几个域,最终最多就会出现几个渲染进程

通过合理的安排域,可以让重要的页面单独占用一个进程,而零碎的小页面一起来占用一个进程,节省资源

 

Redrain

QQ:491646717

2018.8.7

以上是关于cef合并渲染进程的主要内容,如果未能解决你的问题,请参考以下文章

[原创]嵌入CEF遇到的问题及解决方案

CEF3研究之javascript集成

CEF3研究

C#搞跨平台UI,封装Cef作为Cpf的控件支持Windows,Linux,Mac

cef chromium相关

cefframerender是啥进程