久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4896|回復: 0
收起左側

關于瀏覽器內存占用的一點思考

[復制鏈接]
ID:103513 發表于 2016-1-17 00:27 | 顯示全部樓層 |閱讀模式
在論壇里面混了好久了,突然發現一篇主題都沒發表過,都只是回帖,于是決定貢獻一點力量。

最近看論壇,發現很多用戶都在關注內存問題,不少用戶覺得內存占用比較大,就這個問題,我想以個人觀點發表一些看法,當然也希望大家看完我的文字之后,對內存這個東西有個新的理解和看法。

先講點基本的科普知識,以windows為例,操作系統里面運行著很多進程,每個進程都需要消耗一定的內存用來存放自己的數據,瀏覽器也不例外。但是內存總數是固定的,那么一旦進程所需要的總內存超出機器安裝的物理內存怎么辦呢?操作系統很聰明,它會把一些不常用的內存放到硬盤上(想了解更多細節的,可以去搜一下LRU算法),這樣可以把內存騰出來給那些處于活動狀態的程序。當那些當初被臨時放到硬盤的內存數據需要再次被使用時,操作系統會把它們取出來,重新放到內存中去。這個過程就是我們常說的“換頁(page swap)”操作。換頁操作是有很大的額外開銷的,畢竟硬盤速度比內存要慢很多。

那么我們平常在任務管理器所看到的“內存”是什么呢?其實那個數值的含義是“一個進程真實消耗的內存大小 減去 被轉移到硬盤上的內存大小”,你可以簡單理解為“假的內存占用”。也就是說,這個數字越小并不能說明一個軟件越省內存,有可能是這個軟件在“搞鬼”:它把自己的內存“強制”放到硬盤上(windows有一個api叫SetProcessWorkingSetSize,可以強制把內存放到硬盤上)。這里推薦大家關注一個叫Private Bytes的指標,這個指標才能真正反映一個進程所消耗的內存數。注意,xp下面的任務管理器是無法看到這個指標的,大家可以去下載process explorer,就能看到了。

上面說的可能太深奧,下面我們說點簡單的,就說瀏覽器占內存這個事情吧。論壇上不少朋友都說瀏覽器占內存大,說什么開了5個頁面就占了200M之類的話。那么你也許一直關注的就是我上面說的那個“假”的內存,如果有可能,不妨關注一下private bytes。比如對比一下傲游或者tw,甚至是ie也可以,開同樣的標簽,做同樣的動作,看看大家的private bytes是否一樣。當然,我舉這個例子,顯然他們的private bytes應該是相差無幾(差個幾M不是關鍵問題)。此時你可以再關注一下“假”內存,如果有某個瀏覽器的這個“假”內存數字很小,說明這個瀏覽器在“有意掩飾”一些東西,當然出于什么目的我們就不知道了。

有些朋友可能會擔心,說瀏覽器會不會把整個操作系統的內存全吃滿。我可以放心地告訴你,操作系統的設計絕對比你想的要聰明得多。假設你有512M的內存,但是你開了很多網頁,這些網頁要消耗1G的內存。此時操作系統會自動把多出的那些內存轉移到硬盤,而且在一般情況下,操作系統會很聰明地選擇那些你長時間沒有閱讀的頁面(因為采用多標簽,所以一般只能看到一個頁面)放入硬盤。這個時候,你通過任務管理器就會看到,這個瀏覽器也許只占用了300M的內存,但是其實它有700M的內存被臨時放到了硬盤上。但是如果你用process explorer,就會看到,這個軟件的private byte是1G,不會隨著窗口的顯示和隱藏而發生改變。

從操作系統的設計角度來看,數據在內存和硬盤之間的轉移應該屬于操作系統的職責,一個進程不應當越俎代庖。如果純為了任務管理器好看,純為了一些無聊的內存評測,那么我們完全可以把內存全都塞到硬盤上,你甚至可以看到瀏覽器只占1M的內存,但是這樣用起來就會特別卡,因為每次需要訪問數據時,都要從硬盤中現取,那速度自然可想而知了。有些朋友可能擔心,說我開著瀏覽器的時候還要做別的事情,不能讓瀏覽器把內存都吃掉,那么從這個角度考慮,就更應該把內存的管理權交給操作系統了,因為只有操作系統才知道你這個時候在做什么,操作系統會根據你當前的行為來決定內存的分配策略。而相反地,搜狗瀏覽器的開發人員并不知道你會做什么,極端一點說,如果搜狗瀏覽器強制“不許”把內存放到硬盤,那么有些用戶就會說“搜狗瀏覽器好流暢啊,真爽”,但是另外一些用戶就會說“搜狗真爛,一開搜狗,其他軟件都巨卡”;相反地,如果搜狗瀏覽器強制把所有內存都放到硬盤,那么一些用戶就會說“搜狗真省內存,一點也不影響其他軟件運行”,但是另外一些用戶就會說“搜狗太他媽卡了,根本沒法用”。

我個人的觀點是,搜狗以后可以推出多種模式供大家選擇,比如有些用戶喜歡關注“假”內存這個數字,那么就可以把內存全部交換到硬盤,以滿足這些用戶的一些癖好;而對于大多數普通用戶,目前這樣子應該說是最佳的狀態(即把內存的管理權完全交給操作系統掌管)。

最后請各位噴子注意,我的觀點僅供大家參考,但是如果你想在原理上————注意是“原理”上————噴我,那么我建議你先做一些功課再來噴,比如學學基本的操作系統原理,讀讀linux kernel源碼,改改wrk什么的,以免你的水平比我低太多。

歡迎大家深入交流

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久91| 精品亚洲一区二区三区 | 国产黄色免费网站 | 亚洲电影一级片 | 久久国产精品网站 | 日韩小视频在线 | 激情欧美日韩一区二区 | 国产一区 | 亚洲一区二区三区 | 91精品久久久久久久久 | 亚洲高清在线观看 | 精品免费视频一区二区 | 综合久久av| 超碰在线97国产 | 中文字幕一区在线观看视频 | 免费av手机在线观看 | 久久久婷婷 | 毛片一级片| 日韩午夜激情 | 91p在线观看 | 国产精品一区二区久久 | 欧美视频三级 | 北条麻妃国产九九九精品小说 | 精品欧美一区免费观看α√ | 欧美日韩毛片 | 亚洲精品在线视频 | 亚洲精品在线视频 | 成人精品系列 | 久久国产一区二区三区 | 免费视频一区二区 | 成人欧美一区二区三区在线观看 | 国产9 9在线 | 中文 | 成人看片在线观看 | 韩三级在线观看 | 三级视频在线观看电影 | 国产精品久久9 | 91伊人| 中文字幕在线播放不卡 | 国产高清一区二区 | 日韩免费一区 | 在线视频一区二区三区 |