轉載請說明原出處,謝謝~~: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資源劃分爲幾個域。這樣只要自己劃分了幾個域,最終最多就會出現幾個渲染進程
通過合理的安排域,可以讓重要的頁面單獨佔用一個進程,而零碎的小頁面一起來佔用一個進程,節省資源