網(wǎng)站緩存代碼文件(網(wǎng)站開啟緩存)
↓推薦關(guān)注↓
?
?前言 ?
?
WebView2 運(yùn)行時(shí)使用與 Microsoft Edge 瀏覽器相同的進(jìn)程模型。
WebView2 運(yùn)行時(shí)中的進(jìn)程
WebView2 進(jìn)程組是 WebView2 運(yùn)行時(shí)進(jìn)程的集合。WebView2 進(jìn)程組包括以下內(nèi)容:
單個(gè)瀏覽器進(jìn)程。
一個(gè)或多個(gè)渲染器(呈現(xiàn)器)進(jìn)程。
其他幫助程序進(jìn)程,例如 GPU 進(jìn)程和音頻服務(wù)進(jìn)程。
單個(gè)瀏覽器進(jìn)程。
一個(gè)或多個(gè)渲染器(呈現(xiàn)器)進(jìn)程。
其他幫助程序進(jìn)程,例如 GPU 進(jìn)程和音頻服務(wù)進(jìn)程。
當(dāng)WebView2應(yīng)用程序使用WebView2功能時(shí),WebView2進(jìn)程組中進(jìn)程的數(shù)量和存在可能會(huì)發(fā)生變化。(但是,WebView2進(jìn)程組中只有一個(gè)特定的瀏覽器進(jìn)程。)例如,從同一個(gè) CoreWebView2Environment 市里創(chuàng)建新的WebView2實(shí)例,但在源屬性中使用不同的域,通常會(huì)啟動(dòng)一個(gè)新的渲染器進(jìn)程。
渲染器進(jìn)程的數(shù)量可能會(huì)根據(jù)以下情況而變化:
展開全文
在WebView2運(yùn)行時(shí)中使用站點(diǎn)隔離功能。請(qǐng)參見每幀渲染器進(jìn)程-站點(diǎn)隔離。
在使用同一用戶數(shù)據(jù)文件夾的WebView2實(shí)例中呈現(xiàn)的不同斷開連接的源的數(shù)量。
在WebView2運(yùn)行時(shí)中使用站點(diǎn)隔離功能。請(qǐng)參見每幀渲染器進(jìn)程-站點(diǎn)隔離。
在使用同一用戶數(shù)據(jù)文件夾的WebView2實(shí)例中呈現(xiàn)的不同斷開連接的源的數(shù)量。
控制何時(shí)創(chuàng)建這些額外進(jìn)程的邏輯取決于Chromium體系結(jié)構(gòu),并且超出了 WebView2 運(yùn)行時(shí)的范圍。
下面是在真實(shí)項(xiàng)目中測(cè)試的結(jié)果
(1)電腦關(guān)機(jī),重新開機(jī),未運(yùn)行Edge瀏覽器,且未運(yùn)行與WebView2相關(guān)的宿主應(yīng)用程序。
后臺(tái)進(jìn)程中有5個(gè)默認(rèn)Edge進(jìn)程在運(yùn)行
(2)運(yùn)行“建筑工程施工圖AI審查系統(tǒng)”,其中紅色框內(nèi)是使用WebView2組件加載的網(wǎng)頁應(yīng)用
任務(wù)管理器中,進(jìn)程“Zjgsgts.Sczj”下啟動(dòng)了7個(gè)WebView2的子進(jìn)程
其中某個(gè)第1個(gè)、第2個(gè)進(jìn)程是渲染器進(jìn)程,因?yàn)槿S模型的渲染過程消耗的內(nèi)存較多。第3、4、5、6、7是GPU進(jìn)程或者其他幫助類程序進(jìn)程。
而瀏覽器進(jìn)程依然為5個(gè),說明其中一個(gè)是 WebView2 進(jìn)程組中的瀏覽器進(jìn)程。
在宿主程序的根目錄下多了兩個(gè)文件夾
runtimes 目錄
結(jié)構(gòu)如下圖,包含一個(gè)WebView2運(yùn)行時(shí)加載器組件 WebView2Loader.dll 。
runtimes 目錄
結(jié)構(gòu)如下圖,包含一個(gè)WebView2運(yùn)行時(shí)加載器組件 WebView2Loader.dll 。
結(jié)構(gòu)如下圖,包含一個(gè)WebView2運(yùn)行時(shí)加載器組件 WebView2Loader.dll 。
Zjgsgtsc.Sczj.exe.WebView2 目錄
結(jié)構(gòu)圖下圖,里面包含運(yùn)行過程中其他的輔助配置信息以及緩存等信息
Zjgsgtsc.Sczj.exe.WebView2 目錄
結(jié)構(gòu)圖下圖,里面包含運(yùn)行過程中其他的輔助配置信息以及緩存等信息
關(guān)于該目錄信息,在后續(xù)的博客中會(huì)詳解介紹。
WebView2 運(yùn)行時(shí)進(jìn)程和用戶數(shù)據(jù)文件夾
WebView2 運(yùn)行時(shí)進(jìn)程集合中的所有進(jìn)程都綁定到瀏覽器進(jìn)程,而瀏覽器進(jìn)程又與單個(gè)用戶數(shù)據(jù)文件夾相關(guān)聯(lián)。如果應(yīng)用程序使用多個(gè)用戶數(shù)據(jù)文件夾,將為每個(gè)用戶數(shù)據(jù)文件夾創(chuàng)建 WebView2 運(yùn)行時(shí)進(jìn)程的集合。
img
用戶數(shù)據(jù)文件夾可由多個(gè)應(yīng)用程序共享,但請(qǐng)務(wù)必考慮對(duì)性能和管理的影響,如“管理用戶數(shù)據(jù)”文件夾中所述。
若要使用多個(gè)用戶數(shù)據(jù)文件夾,WebView2 應(yīng)用程序需要?jiǎng)?chuàng)建不同的 CoreWebView2Environment 對(duì)象。WebView2通過配置的對(duì)象為給定用戶數(shù)據(jù)文件夾創(chuàng)建CoreWebView2Environment實(shí)例。每個(gè) CoreWebView2Environment 對(duì)象都需要使用不同的用戶數(shù)據(jù)文件夾值進(jìn)行配置。
為給定的用戶數(shù)據(jù)文件夾創(chuàng)建第一個(gè)WebView2實(shí)例時(shí),將啟動(dòng)與該用戶數(shù)據(jù)文件夾關(guān)聯(lián)的WebView2運(yùn)行時(shí)進(jìn)程集合的瀏覽器進(jìn)程。所有其他進(jìn)程都將在該瀏覽器進(jìn)程的生命周期內(nèi)進(jìn)行管理。
CoreWebView2Environment代表一個(gè)用戶數(shù)據(jù)文件夾及其相關(guān)進(jìn)程的集合。給定的渲染器進(jìn)程與單個(gè)CoreWebView2實(shí)例不關(guān)聯(lián),因?yàn)殇秩酒鬟M(jìn)程可以為使用同一用戶數(shù)據(jù)文件夾的多個(gè)CoreWebView2實(shí)例中的幀提供服務(wù),具體取決于網(wǎng)站隔離。請(qǐng)參見每幀渲染器進(jìn)程-站點(diǎn)隔離
處理進(jìn)程事件和生命周期
若要對(duì)瀏覽器和渲染器進(jìn)程中的崩潰和掛起做出反應(yīng),請(qǐng)使用 CoreWebView2 的 ProcessFailed 事件。
若要安全地關(guān)閉相關(guān)的瀏覽器和渲染器進(jìn)程,請(qǐng)使用 CoreWebView2Controller 的 Close 方法。
若要打開瀏覽器任務(wù)管理器,請(qǐng)調(diào)用 OpenTaskManagerWindows方法。
其他事件,請(qǐng)參考 WebView2 API。
轉(zhuǎn)自:張傳寧
轉(zhuǎn)自:張傳寧
- EOF -
點(diǎn)擊標(biāo)題可跳轉(zhuǎn)
.NET 性能優(yōu)化-你應(yīng)該為集合類型設(shè)置初始大小
.NET 桌面程序集成Web網(wǎng)頁多種解決方案
ASP.NET 在線預(yù)覽 Word文檔的解決方案與思路
看完本文有收獲?請(qǐng)轉(zhuǎn)發(fā)分享給更多人
推薦關(guān)注「DotNet」,提升.Net技能
點(diǎn)贊和在看就是最大的支持??
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。