mac下chrome浏览器的标签页、进程和内存分配
因?yàn)樽罱鉀Q網(wǎng)頁(yè)經(jīng)常崩潰的問(wèn)題,所以去研究了一下chrome瀏覽器的標(biāo)簽頁(yè)和進(jìn)程的關(guān)系,以及標(biāo)簽頁(yè)對(duì)應(yīng)進(jìn)程的內(nèi)存分配。
標(biāo)簽頁(yè)和進(jìn)程的對(duì)應(yīng)關(guān)系
當(dāng)chrome瀏覽器開(kāi)啟但是沒(méi)有任何一個(gè)標(biāo)簽頁(yè)的時(shí)候,打開(kāi)Activity Manager,按名稱(chēng)降序排列,會(huì)發(fā)現(xiàn)有一個(gè)google chrome進(jìn)程,和2個(gè)google chrome helper進(jìn)程,
然后打開(kāi)一個(gè)標(biāo)簽頁(yè),發(fā)現(xiàn)多了兩個(gè)Google Chrome Helper進(jìn)程,
當(dāng)頁(yè)面加載完成,發(fā)現(xiàn)又少了一個(gè)
再打開(kāi)一個(gè)頁(yè)面會(huì)重復(fù)這個(gè)過(guò)程
到這里可以得出結(jié)論:chrome默認(rèn)會(huì)啟動(dòng)主進(jìn)程,和兩個(gè)子進(jìn)程,然后每打開(kāi)一個(gè)標(biāo)簽頁(yè)會(huì)啟動(dòng)兩個(gè)進(jìn)程,當(dāng)頁(yè)面加載完成其中一個(gè)進(jìn)程會(huì)結(jié)束,只剩一個(gè)進(jìn)程用于渲染和交互和網(wǎng)絡(luò)請(qǐng)求,以后每個(gè)標(biāo)簽頁(yè)都會(huì)重復(fù)這個(gè)過(guò)程。
標(biāo)簽頁(yè)的內(nèi)存分配
接下來(lái)是找到我們網(wǎng)站所在的標(biāo)簽頁(yè)對(duì)應(yīng)的進(jìn)程,去觀察他的一些資源占用情況。
確定了一個(gè)進(jìn)程之后,然后點(diǎn)擊強(qiáng)制退出,發(fā)現(xiàn)標(biāo)簽頁(yè)崩潰了。由此,我確定了新增的那個(gè)進(jìn)程就是當(dāng)前標(biāo)簽頁(yè)所對(duì)應(yīng)的進(jìn)程。
之后我看了下他的一些資源占用情況,
當(dāng)我打開(kāi)一個(gè)圖片很多的子頁(yè)面時(shí)明顯看到內(nèi)存占用上升,
?
之后我想測(cè)試一下一個(gè)標(biāo)簽頁(yè)的內(nèi)存上限是多少,也就是內(nèi)存到多少時(shí)標(biāo)簽頁(yè)的進(jìn)程會(huì)被強(qiáng)制殺死,或者說(shuō)頁(yè)面崩潰。
于是我寫(xiě)了一個(gè)測(cè)試頁(yè)面,
打開(kāi)他的內(nèi)存進(jìn)程信息面板,看到現(xiàn)在內(nèi)存占用是60M,于是我開(kāi)始點(diǎn)擊按鈕添加網(wǎng)頁(yè)內(nèi)容
后來(lái)發(fā)現(xiàn)內(nèi)存到300M就不動(dòng)了,再添加多少都是這樣,之后應(yīng)該是在分配虛擬內(nèi)存了。
因?yàn)樘摂M內(nèi)存的方式,mac osx下頁(yè)面不容易崩潰,在windows下是怎樣的機(jī)制沒(méi)去研究,但崩潰的情況比較多,估計(jì)是windows下的情況。
總結(jié)
通過(guò)Activity Manager去研究mac下chrome瀏覽器的標(biāo)簽頁(yè)和進(jìn)程的關(guān)系以及標(biāo)簽頁(yè)的內(nèi)存分配,發(fā)現(xiàn)chrome默認(rèn)會(huì)啟動(dòng)一個(gè)主進(jìn)程和兩個(gè)子進(jìn)程,之后每啟動(dòng)一個(gè)標(biāo)簽頁(yè)會(huì)啟動(dòng)2個(gè)進(jìn)程,加載完成后會(huì)結(jié)束一個(gè)。每個(gè)標(biāo)簽頁(yè)都會(huì)分配實(shí)際內(nèi)存和虛擬內(nèi)存,當(dāng)實(shí)際內(nèi)存達(dá)到300M左右時(shí),之后就只會(huì)分配虛擬內(nèi)存。因?yàn)檫@種機(jī)制的存在,mac下頁(yè)面還是沒(méi)那么容易因?yàn)閮?nèi)存溢出而崩潰的,更多的要去關(guān)心windows下的內(nèi)存占用情況。
總結(jié)
以上是生活随笔為你收集整理的mac下chrome浏览器的标签页、进程和内存分配的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OpenStack实践(一):Ubunt
- 下一篇: 【持续..】WEB前端面试知识梳理 -