色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

重新內存分配的改變讓Firefox崩潰次數降低70%

OSC開源社區 ? 來源: OSC開源社區 ? 作者: OSC開源社區 ? 2022-11-29 15:08 ? 次閱讀

用戶在 Windows 平臺上使用 Firefox 時,遇到的最常見的不穩定原因就是崩潰,而且這一現象在 Windows 平臺上的嚴重程度遠高于 Linux 和 macOS。因此,Mozilla 花了大量的資源來減少 Firefox 的內存消耗,并仔細監測這些變化。然而,Mozilla 近日透露,他們此前所作出的所有努力都不如他們在 Firefox 105 中部署的一個小改變有效。

首先,要了解為什么在 Windows 上運行的應用程序與其他操作系統相比更容易耗盡內存產生崩潰,就必須了解 Windows 如何處理內存。 所有的現代操作系統都允許應用程序分配一塊地址空間。最初在沒有數據被存儲在其中時,這些塊只代表沒有物理內存支持的地址范圍。當一個應用程序開始使用它所保留的地址空間時,操作系統將拿出一塊物理內存來支持它,如果需要的話,可能會交換掉一些現有的數據。Linux 和 macOS 都是這樣工作的,Windows 也是如此,只是與其他操作系統相比,Windows 需要執行一個額外的步驟。 在一個應用程序請求了一塊地址空間之后,應用需要在能夠使用它之前提交使用范圍,這個范圍需要 Windows 保證它總是能夠找到物理內存來支持它。之后,Windows 的行為就像 Linux 和 macOS 一樣沒什么區別了。

因此,Windows 限制了可以提交的內存大小,即機器的物理內存加上交換文件的大小之和。 提交空間(commit space)是應用面對的硬限制,只要達到這個限制,內存分配就會失敗。

Firefox 開發者在分析瀏覽器崩潰問題時發現,在很多情況下發生崩潰時,用戶設備上的可用物理內存仍然很多,但提交空間卻耗盡了。 因此他們決定采用一些技巧來規避這一問題,也就是當內存分配失敗時,瀏覽器不是立即崩潰,而是先等待下,然后嘗試重新內存分配。雖然這會導致瀏覽器卡住短暫的幾分之一秒,但遠比徹底崩潰好得多(當交換文件快滿時,Windows 會自動調整它的大小,增加可用的提交空間)。 Mozilla 在 Firefox 105 中應用了這一改變,顯著改進了瀏覽器的穩定性。

下面的圖表顯示了用戶在每一個活躍的使用小時中經歷了多少次內存耗盡的瀏覽器崩潰(崩潰次數減少了 70% 以上,遠遠超過了 Mozilla 當初的預測)。

139da720-6e52-11ed-8abf-dac502259ad0.png

Mozilla 表示,雖然他們已經在 Firefox 105 中實現了這項改進,但實際上這項改進還沒有徹底完成,因為目前延緩主進程會導致標簽頁崩潰次數小幅增加,這對用戶來說也是不愉快的使用體驗,雖然沒有完整的瀏覽器崩潰那么煩人,但團隊依然在嘗試減少這樣的情況發生。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    8

    文章

    3034

    瀏覽量

    74136
  • WINDOWS
    +關注

    關注

    4

    文章

    3551

    瀏覽量

    88871
  • Firefox
    +關注

    關注

    0

    文章

    97

    瀏覽量

    13684

原文標題:一個小改變,讓Firefox崩潰次數降低70%

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    轉載 golang內存分配

    Go 的分配采用了類似 tcmalloc 的結構.特點: 使用一小塊一小塊的連續內存頁, 進行分配某個范圍大小的內存需求. 比如某個連續 8KB 專門用于
    的頭像 發表于 09-05 14:12 ?280次閱讀
    轉載 golang<b class='flag-5'>內存</b><b class='flag-5'>分配</b>

    堆棧和內存的基本知識

    本文主要聊聊關于堆棧的內容。包括堆棧和內存的基本知識。常見和堆棧相關的 bug,如棧溢出,內存泄漏,堆內存分配失敗等。后面介紹軟件中堆棧統計的重要性,以及如何使用工具工具軟件中堆棧使用
    的頭像 發表于 08-29 14:10 ?494次閱讀
    堆棧和<b class='flag-5'>內存</b>的基本知識

    如何檢測內存泄漏

    檢測內存泄漏是軟件開發過程中一項至關重要的任務,它有助于識別和解決那些導致程序占用過多內存資源,從而影響程序性能甚至導致程序崩潰的問題。以下將詳細闡述幾種常見的內存泄漏檢測方法,每種方
    的頭像 發表于 07-30 11:50 ?2041次閱讀

    可以用os_malloc() 分配多少內存?有哪些限制?

    我可以用 os_malloc() 分配多少內存?有哪些限制?
    發表于 07-15 06:32

    esp8266如何正確釋放分配內存

    我為結構數組分配內存,這是我的代碼: size_t taskAmount; object *tasks = Parsejson(subbuff,sizeof(subbuff),&
    發表于 07-12 12:34

    ESP8266隨機崩潰,不會自行啟動或重新啟動怎么處理?

    看門狗或軟件看門狗的幫助下崩潰,它也應該再次重新啟動并正常工作。為什么它期待硬重啟。 您能否建議問題的根本原因。模塊遇到這種情況的可能性有多大,為什么看門狗計時器無法幫助模塊啟動和運行,以及模塊在運行時環境中期望硬重啟的可能性有多大。懇請建議。
    發表于 07-11 07:41

    esp_mesh_set_parent函數成功連接后,如何設置重新連接次數

    esp_mesh_set_parent函數成功連接后,斷開AP,該函數會不斷發起重新連接,如何設置重新連接次數
    發表于 06-28 13:29

    nvs使用時出現的系統崩潰的原因?怎么解決?

    問題:設備使用nvs儲存相關參數,設備開始正常使用,在一兩個月后讀參數的過程中出現系統崩潰,而且不是所以設備都有問題,只有百分之十以內會出現,在重新寫完之后讀會變正常以下是程序以及崩潰的log
    發表于 06-12 06:27

    ESP32S3+LVGL創建一個界面,請問能只在SPIRAM分配內存,IRAM不分配嗎?

    各位前輩好。ESP32S3+LVGL的開發的過程中發現,創建一個界面,會同時在SPIRAM和IRAM分配相同大小的內存。請問能只在SPIRAM分配內存,IRAM不
    發表于 06-06 07:45

    FreeRTOS如何在中斷中調用內存分配函數?

    最近在玩FreeRTOS,遇到一個問題,就是不知如何在中斷中調用內存分配函數。pvPortMalloc函數中會調用xTaskResumeAll,而這個函數不能再中斷調用,所以請問在中斷中進行內存
    發表于 05-08 08:25

    13代及14代酷睿i9系列高端CPU游戲崩潰問題引發關注

    4 月 10 日訊,亞馬遜 ZDNet Korea 報告指出,近期多名電腦用戶在采用英特爾第 13 和 14 代酷睿 i9 高端處理器玩游戲時遇到了崩潰現象,如萬代南夢宮游戲《鐵拳 8》PC 演示版雖然配備較大的內存和顯存,但仍無法避免頻繁
    的頭像 發表于 04-10 10:08 ?2178次閱讀

    C語言內存泄漏問題原理

    內存泄漏問題只有在使用堆內存的時候才會出現,棧內存不存在內存泄漏問題,因為棧內存會自動分配和釋放
    發表于 03-19 11:38 ?540次閱讀
    C語言<b class='flag-5'>內存</b>泄漏問題原理

    Linux內核內存管理之內核非連續物理內存分配

    我們已經知道,最好將虛擬地址映射到連續頁幀,從而更好地利用緩存并實現更低的平均內存訪問時間。然而,如果對內存區域的請求并不頻繁,那么考慮基于通過連續線性地址訪問非連續頁幀的分配方案是有意義的。該模式
    的頭像 發表于 02-23 09:44 ?1010次閱讀
    Linux內核<b class='flag-5'>內存</b>管理之內核非連續物理<b class='flag-5'>內存</b><b class='flag-5'>分配</b>

    Linux內核內存管理之ZONE內存分配

    內核中使用ZONE分配器滿足內存分配請求。該分配器必須具有足夠的空閑頁幀,以便滿足各種內存大小請求。
    的頭像 發表于 02-21 09:29 ?917次閱讀

    ADSP-BF70x API的GPIO Server中為什么需要分配內存空間給回調函數?

    我在使用adsp-bf70x的api時發現,在adi_gpio_Init()調用后為回調函數分配內存空間。這里為什么需要這樣做,我不太明白,請大家幫忙解釋一下,謝謝!
    發表于 01-12 08:28
    主站蜘蛛池模板: 花季v3.0.2黄在线观看| 亚洲免费视频在线观看| 不良网站进入窗口软件下载免费| 波多结衣一区二区三区| 日本女人下面毛茸茸| 国产成人无码精品久久久影院| 秘密教学26我们在做一次吧免费| 小草观看免费高清视频| 宝贝乖女好紧好深好爽老师| 双腿被绑成M型调教PLAY照片| 91女神娇喘| 午夜视频在线网站| 国产精品久久久久久久AV下载| 蜜桃人妻无码AV天堂三区| 动漫在线观看免费肉肉| 一个人看www| 色欲AV精品一区二区入口 | 亚洲国产精品免费线观看视频| 国产高清亚洲| 主播蜜汁丝袜精品自拍| 亚洲 色 欧美 爱 视频 日韩| 好男人好资源在线观看| 亚洲色图在线视频| 色狐直播免费观看| 嗯啊…嗯np男男双性总受| 久久国产高清字幕中文| av在线观看地址| 色色色五的天| 欧美性暴力变态xxxx| 恋夜秀场1234手机视频在线观看| 99精品国产电影| 日日啪在线影院百度| 国产人妻麻豆蜜桃色69| 俄罗斯videosbest8| 顶级欧美不卡一区二区三区| 亚洲国产果果在线播放在线| 精品亚洲麻豆1区2区3区| 国产成人在线观看免费网站| 国产成人精品系列在线观看| 村上里沙快播| 婬香婬色天天视频|