Aerospike的bin記憶體管理--即列記憶體管理
1、記憶體申請函式呼叫
write_master->write_master_dim->write_master_bin_ops
->write_master_bin_ops_loop->as_bin_particle_alloc_from_client:
該函式對as_bin_s->particle進行申請記憶體,並將相關bin屬性和值load到
申請的記憶體中。
2、記憶體釋放函式呼叫
as_record_done->as_record_destroy->as_record_clean_bins
->as_record_clean_bins_from
點選(此處)摺疊或開啟
-
void as_record_clean_bins_from(as_storage_rd *rd, uint16_t from)
-
{
-
for (uint16_t i = from; i < rd->n_bins; i++) {
-
//對每個bin進行釋放
-
as_bin *b = &rd->bins[i];
-
if (as_bin_inuse(b)) {//bin state有效
-
as_bin_particle_destroy(b, rd->ns->storage_data_in_memory);
-
as_bin_set_empty(b);//設定bin的狀態AS_BIN_STATE_UNUSED
-
}
-
}
-
}
-
void as_bin_particle_destroy(as_bin *b, bool free_particle)
-
{
-
if (as_bin_is_embedded_particle(b)) {
-
b->particle = 0;//int、float型別沒有申請空間,這裡set 0即可
-
}
-
else if (b->particle) {
-
if (free_particle) {
-
particle_vtable[as_bin_get_particle_type(b)]->destructor_fn(b->particle);
-
}
-
//根據型別呼叫destructor函式,blob的呼叫blob_destruct,其實是cf_free(p)
-
//釋放了空間,將其set 0
-
b->particle = 0;
-
}
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31493717/viewspace-2148178/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記憶體管理 記憶體管理概述記憶體
- 記憶體管理篇——實體記憶體的管理記憶體
- 自動共享記憶體管理 自動記憶體管理 手工記憶體管理記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- 【記憶體管理】記憶體佈局記憶體
- 記憶體管理記憶體
- 記憶體管理兩部曲之實體記憶體管理記憶體
- Go:記憶體管理與記憶體清理Go記憶體
- 記憶體管理兩部曲之虛擬記憶體管理記憶體
- 【記憶體管理】Oracle AMM自動記憶體管理詳解記憶體Oracle
- Linux 記憶體管理:記憶體對映Linux記憶體
- 記憶體管理-swMemoryGlobal記憶體
- OC記憶體管理記憶體
- iOS 記憶體管理iOS記憶體
- JavaScript 記憶體管理JavaScript記憶體
- MySQL記憶體管理MySql記憶體
- Oracle 記憶體管理Oracle記憶體
- JavaScript記憶體管理JavaScript記憶體
- CF的記憶體管理。記憶體
- JavaScript的記憶體管理JavaScript記憶體
- 2 Day DBA-管理Oracle例項-管理記憶體-修改記憶體設定-自動記憶體管理Oracle記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- 2 Day DBA-管理Oracle例項-管理記憶體-關於記憶體管理Oracle記憶體
- MRC 時代的記憶體管理記憶體
- javascript中的記憶體管理JavaScript記憶體
- SGI STL 的記憶體管理記憶體
- python的記憶體管理Python記憶體
- iOS 中的記憶體管理iOS記憶體
- 理解 iOS 的記憶體管理iOS記憶體
- MySQL InnoDB的記憶體管理MySql記憶體
- linux的記憶體管理Linux記憶體
- PGA 記憶體的管理 (zt)記憶體
- C語言-記憶體管理之一[記憶體分配]C語言記憶體
- C語言-記憶體管理之二[記憶體指令]C語言記憶體
- “理解”iOS記憶體管理iOS記憶體
- iOS 記憶體管理MRCiOS記憶體
- iOS 記憶體管理研究iOS記憶體