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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章