本文共 1936 字,大约阅读时间需要 6 分钟。
CEF(Chromium Embedded Framework)基于Chromium引擎,采用多进程模型进行渲染和处理。关于其进程模型的实现,可以参考Chromium源码中的content/public/common/content_switches.cc和content/app/content_main_runner.cc文件。
在CEF中,进程类型主要包括:
type参数时,CEF会创建一个浏览器进程来处理主渲染任务。kRendererProcess相关联。kPluginProcess。kPpapiBrokerProcess相关。kPpapiPluginProcess相关。kSandboxIPCProcess相关。kUtilityProcess相关。kZygoteProcess相关。kGpuProcess相关。在实际应用中,除了browser、ppapi和renderer进程外,其他进程类型(如plugin、ppapi-broker、sandbox-ipc等)的具体功能和作用可能会因项目需求而有所不同。
关于CEF的命令行参数,可以参考以下相关文件:
tests/cefclient/common/client_switches.ccbase/base_switches.cccef/libcef/common/cef_switches.ccchrome/common/chrome_switches.cc(部分参数不适用)content/public/common/content_switches.ccCEF支持的多数Chromium命令行参数也适用于CEF,可以参考 Chromium官方文档以获取详细信息。
在使用CEF时,进程模型相关的命令行参数可以帮助你对不同进程的行为进行细粒度控制。以下是一些常见的进程模型参数:
需要注意的是,在使用–single-process时,PPAPI插件仍会运行在独立的进程中。这意味着即使所有渲染相关的进程合并在一个主进程中,PPAPI插件仍然会作为独立的ppapi进程运行。
如果你需要在CEF中同时使用单进程模式和Chromium的新特性,可以通过组合命令行参数来实现。例如:
renderer、browser和ppapi三者合一,可以传递以下参数:–single-process –ppapi-in-process
renderer和browser合一,而ppapi插件运行在独立的PPAPI进程中,可以传递以下参数:–single-process –ppapi-out-of-process
需要注意的是,在使用–ppapi-out-of-process时,CEF会默认为type=ppapi参数。如果需要自定义PPAPI进程的类型,可以参考Chromium源码中的相关实现。
关于CEF3的多进程模型的稳定性问题,可以参考相关技术讨论和官方文档以获取更多信息。
转载地址:http://qhey.baihongyu.com/