記憶體分配 收集

2022-09-05 12:51:15 字數 606 閱讀 5861

globalalloc是標準記憶體管理函式,標準記憶體管理函式都是操作程序的預設堆,所以這個函式是從程序的從程序的預設堆中分配記憶體空間,分配的空間可以是可移動的也可以是不可以移動的。可移動的記憶體是指windows在需要的時候可以將這個記憶體移動到另外乙個位址  

heapallock是堆管理函式,堆管理函式可以操作非預設堆(當然也可以操作預設堆),建立乙個堆是用heapcreate,這個函式返回乙個堆控制代碼,然後可以用在heapallock函式中,即從返回的這個堆中申請記憶體空間,heapallock申請的記憶體只能是不可以移動的  

而new則是c++的標準函式,在windows的vc++編譯器中,new在申請記憶體最終呼叫的是glabalallock,不過new還會呼叫類的建構函式。  

windows的記憶體管理除了標準記憶體管理函式和堆管理函式之外,還有更加底層的虛擬記憶體管理函式,virtualallock就是乙個虛擬記憶體管理函式。

安裝後,使用其中的gflags.exe工具開啟pageheap,

gflags -p /enable maind.exe /full

重新使用vs用除錯方式執行,很快就找到了出錯位置,因為在某個靜態函式中筆誤導致

在編寫穩定的伺服器程式時,這個工具尤為有用。

JVM垃圾收集器與記憶體分配策略

軟引用弱引用 虛引用老年代 主動中斷 xx maxgcpausemillis 設定最大停頓時間 毫秒 xx gctimeratio 設定吞吐量大小 0 100 xx useadaptivesizepolicy 配合最大停頓時間,或吞吐量來使用.僅需要設定 xmx 2.併發標記 3.重新標記 4.併發...

記憶體分配 Go記憶體管理 記憶體分配一

go作為乙個比較新晚 新 的語言,自然借鑑前輩們的優點,比如說語言本身負責記憶體管理 對協程和高併發的高優支援 簡單高效的語法等。本篇及後續的幾篇要講的就是還沒提到的比較複雜的記憶體管理。學習記憶體管理 分配 前,如果有jvm的記憶體管理的基礎,會變得非常簡單,如果是第一次接觸記憶體管理,在看完go...

記憶體分配 定長記憶體分配器

在各種記憶體分配演算法中,有一種很實用,實現起來也簡單 定長的記憶體分配器。即每次分配的記憶體大小是固定的。大概邏輯是 在一些區域性的單執行緒邏輯中,可以有效提高效率。很短,很容易看懂 fallocator.h pragma once 固定長度的記憶體分配器 include include incl...