• 3168阅读
  • 6回复

[提问]Qtwebengine 多进程模型如何实现 [复制链接]

上一主题 下一主题
离线hshuxiang
 

只看楼主 倒序阅读 楼主  发表于: 2019-10-31
Qtwebengine 是基于 Chromium 内核来实现的~
但Chromium 内核是可以支持进程模型的选择


模型的类型

其实介绍了进程模型,其实Chromium支持多种进程模型,特别是对页面而言,下面简单的介绍以下模型的类型:


Process-per-site-instance

该类型的含义是对同一个域的实例都会创建独立的进程。举个例子来讲,例如,用户访问了milado_nju的CSDN博客(我的博客),然后从个人主页打开多篇文章时,每篇文章的页面都是该域的一个实例,因而它们都共享同一个的进程。如果新打开CSDN博客的主页,那么就是另一个实例,会重新创建进程来渲染它。这带来的好处是每个页面互不影响,坏处自然是资源的巨大浪费。


Process-per-site

该类型的含义是不同一个域会创建独立的进程,同一域的不同实例共享同一个进程。好处是对于不同的域可以共享,相对较小的内存消耗,坏处是可能会有特别大的Renderer进程。可以在命令行加入参数--process-per-site来尝试它。


Process-per-tab

该类型的含义是为每个标签页创建一个独立的进程,这也是chrome/chromium的缺省行为


Single process

该类型的含义是不为页面创建任何独立的进程,所有渲染工作都在browser进程中。但是这个类型只是实验性质的,不稳定,因而不推荐使用,只有在比较单进程和多进程时候比较有用,可以在命令行加入参数--single-process来尝试它。


但是在QT里Qtwebengine 打开多个页面,都是只有一个进程~



求教大佬那里可以设置,支持一个页面启动一个进程。

离线20091001753

只看该作者 1楼 发表于: 2019-11-04

我实测是多个。
打开3个页面后,除了程序进程
还有三个独立的 Qt Qtwebengineprocess
(づ ̄ 3 ̄)づ
离线hshuxiang

只看该作者 2楼 发表于: 2019-11-04
你是做了什么设置吗??我打开不同域名的页面 最少3个~~QtWebEngineProcess.exe 总是只有一个~~
离线20091001753

只看该作者 3楼 发表于: 2019-11-06
回 hshuxiang 的帖子
我这边默认就这样

Qt 5.13.2
msvc2017x64
(づ ̄ 3 ̄)づ
离线hshuxiang

只看该作者 4楼 发表于: 2019-11-30

我用QT自带的实列看了,也是一样~~用页面内的连接地址,新开标签页,Qtwebengineprocess进程只有一个
离线hshuxiang

只看该作者 5楼 发表于: 2020-04-02
回 20091001753 的帖子
20091001753:我这边默认就这样
Qt 5.13.2
msvc2017x64 (2019-11-06 14:18) 

版主,能帮看看问题在哪吗??单进程,一个页面崩了,所有页面都崩了
离线20091001753

只看该作者 6楼 发表于: 2020-04-02
这样吧,方便的话,你先把 Qt 升级到 5.14.2 吧。
(づ ̄ 3 ̄)づ
快速回复
限100 字节
 
上一个 下一个