日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

内存优化-如何使用tcmalloc来提升内存性能?提升的结果太不可思议

發布時間:2023/12/13 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内存优化-如何使用tcmalloc来提升内存性能?提升的结果太不可思议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

無論是在游戲開發,或者其他長期運行的服務開發中,對內存的使用一直是架構師或者主程序在最初就要關注的point,如果內存使用不當,頻繁申請釋放內存造成系統負擔過大,性能降低,到最后產生大量內存碎片,無法申請可利用內存,最終宕機,給廣大程序員同學造成長期加班的痛苦。

在講到tcmalloc之前,這里不得不說GLIBC的資源釋放機制:

1. glibc在多線程內存分配的場景下為了減少lock contention,會new出很多arena出來,每個線程都有自己默認的arena,但是內存申請時如果默認arena被占用,則round-robin到下一個arena。

2. 每個arena的空間不可直接共享和互相借用,除非通過主arena釋放給操作系統然后被各個輔助arena重新申請。

3. glibc歸還內存給OS有一個很苛刻的條件就是top chunk必須是free的,否則,即使應用程序已經釋放了大片內存,glibc也不會將這些內存歸還給OS。

這里我引入tcmalloc,相當于常見的內存池,tcmalloc的優勢體現在:

(1)分配內存頁的時候,直接跟OS打交道,而常用的內存池一般是基于別的內存管理器上分配,如果完全一樣的內存管理策略,明顯tcmalloc在性能及內存利用率上要省掉第三方內存管理的開銷。之所以會出現這種情況,是因為大部分寫內存池的coder都不太了解OS

(2)大部分的內存池只負責分配,不管回收。  

為什么要使用TCmalloc

總結

以上是生活随笔為你收集整理的内存优化-如何使用tcmalloc来提升内存性能?提升的结果太不可思议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。