當前位置:編程學習大全網 - 網站源碼 - stl 為什麽內存不可控

stl 為什麽內存不可控

STL確實好用。

但每個項目都有自己的場景,可以根據自己的需要選擇適合的技術。

不用STL, 不是因為性能,性能不是問題,有時候會了調試、清晰,還會犧牲性能。

有控制的使用STL,主要是有控制的使用map,list,vector這類的容器,

原因是內存碎片。 STL算法,當然可以用了

產生內存碎片的原因是,glibc的stl在底層使用malloc/free來分配內存,

而malloc會帶來內存碎片。

我們的服務器要求至少7*24不間斷運行,甚至半年都不間斷,

所以我們盡量避免在運行過程中使用stl容器。

malloc的實現原理,在這裏就不詳細描述了

glibc內存管理ptmalloc源代碼分析

/view/20033e124431b90d6c85c718.html

替代技術:

1.各種對象的new/malloc =>內存沲

2.std::map => 排序數組、侵入式紅黑樹(參考linux內核中的紅黑樹實現)

3.std::vector => 數組

4.std::list => 侵入式鏈表(參考linux內核中的list)、數組

  • 上一篇:pubg生成工具是哪個鍵?
  • 下一篇:ewbfminer怎麽樣抽
  • copyright 2024編程學習大全網