漸進式動態儲存分配策略

2022-03-02 07:02:12 字數 741 閱讀 6994

在粗糙集約簡過程中的乙個重要步驟,劃分等價類中,需要儲存等價類。

等價類的儲存分配有兩種策略:一次一分配和一步到位。

一次一分配的步驟是出現先乙個新等價類,呼叫一次malloc,以forest covertype為例,第一遍劃分時會形成581012個等價類。

這樣需要呼叫581012次malloc,儲存代價是    581012*sizeof(equivalence class) + 581012*sizeof(指標)   個位元組。

一步到位的方法是一次性申請581012個等價類的大儲存區域。 

一次一分配會過多進行函式呼叫,581012或許不多,但資料增大到20億條時就不是可以忽略的代價,而且破壞資料區域性性。

好處是貌似這麼做不浪費儲存空間。

一步到位的好處是顯而易見的,缺點也很明顯,在申請前無法確定到底有幾個等價類會產生,多了浪費,少了不夠用。而且隨著約簡進行,等價類會越來越少,浪費嚴重。

所以這種情況下完全可以借鑑作業系統對頁面儲存分配的策略:一次一頁面。

隨便開啟記事本,輸入乙個字母,退出儲存,檢視檔案屬性, 會發現檔案大小 1 位元組,占用空間為 4kb。

4kb是檔案系統進行分配的基本粒度單位。

所以新的構造大型決策表約簡的漸進式儲存分配可以這樣:

1、決定插槽的數目,4kb 為粒度進行儲存分配。每4kb可以以儲存 1024個 4-byte 整型。

2、每個插槽只存放頁面指標,初始為null,不夠時立即分配新插槽。

這樣就達到了一種新的平衡。

漸進式儲存機制設想

針對業務採取不同的資料儲存可能性,為了維護安全性與高可用性,區塊鏈可以將其他資料庫作為乙個外掛程式,譬如mysql傳統資料庫,分布式資料庫等融合,企業開發應用時可以針對不同業務情形,選擇不同資料庫,來降低開發成本,所用的資料庫介面直接以grpc或者http方式呼叫.譬如部落格應用,最核心的使用者資料...

Makefile漸進式訓練

本目錄主要包含makefile一步步遞進學習的示例 makefile 例項 進行makefile小實驗,體驗makefile的功能。目錄中的makefile是不嚴謹的編寫方式。目錄中的makefile phony是嚴謹的編寫方式。切換至step0目錄下,即makefile所在的同級目錄,使用如下命令...

PWA 漸進式 web 應用

背景 解決的問題 關鍵時間節點 主要特點 使用pwa的基本要求 離線通知 作用域 更新策略 瀏覽器通過自身 diff 演算法能夠檢測 service work 的更新包含兩種方式 生命週期 mainfest欄位詳解 short name 應用展示的名稱 桌面上顯示的名稱 icons 定義不同尺寸的應...