memory-pool

    2熱度

    5回答

    術語'pool'和'buffer'在這裏可以互換使用。 假設我有一個池,我想在程序開始時分配,因爲並不總是總是調用new。 現在,我不想人爲地限制自己的池的大小,但是如果我重新分配一個更大的池,所有指向舊池的指針都將失效,這當然不是很酷。我想到的 一個辦法是「尋呼」,又名 const int NUM_PAGES = 5; char* pool[NUM_PAGES]; ,而是分配再分配只有一個

    3熱度

    2回答

    通過閱讀「瞭解linux網絡內部信息」和「瞭解linux內核」這兩本書以及其他參考資料,我很困惑,需要對「內存緩存「和"memory pool"技術。 1)他們是相同或不同的技術? 2)如果不一樣,是什麼使差異或截然不同的目標? 3)另外,Slab Allocator怎麼進來?

    5熱度

    1回答

    我正在改進使用Boost Graph Library和boost::bimap的程序的性能。分析顯示,大部分時間都花費在內存分配和重新分配上。使圖庫的adjacency_list類使用boost::fast_pool_allocator顯着提高了性能。剩下的大量內存分配發生在boost::bimap,所以我想試試在那裏使用自定義分配器。 documentation說你可以指定分配器作爲bimap的

    3熱度

    2回答

    我正在尋找更聰明的算法來處理OpenGL中的VBO。 就目前而言,我目前在4MB VBO中存儲了我的每個模型。 如果模型大於4MB,它將單獨存儲。 存儲對象,以便模型彙集在一起​​以減少綁定的數量。 我遇到的問題一直是如何清理未使用的VBO,它只使用稀疏使用。 關於如何更好地管理這些內存池的任何資源,我都很感激。

    0熱度

    1回答

    我正在Core 2 Duo上運行Windows 7。我一直在使用Codeblocks,我認爲我已經使用了GNU編譯器。 我有(或將有)許多從抽象類Component繼承的組件類。我需要幫助建立一個系統來爲不確定數量的組件類型提供內存池,每個組件類型都有不確定的數量。也許爲了爭辯,後者是固定的,我可以想出如何改變大小時,絕對必要的。 另外,方便的話,每種元件類型都有一個從0到無孔的ID(unsign

    0熱度

    5回答

    首先,我們的環境的基本信息:我們在Win7-x64上使用c#.net 4.0,目標是32位。我們有一個預分配的大數組。在一個函數中,我們想返回一個指向這個數組中任意點的指針,這樣調用函數就可以知道在哪裏寫入。例: class SomeClass { void function_that_uses_the_array() { Byte [] whereToWrite = get

    36熱度

    6回答

    我想了解memalign()和posix_memalign()有什麼功能。閱讀可用的文檔沒有幫助。 有人能幫我理解它是如何工作的,它用於什麼?或者,也許提供一個使用示例?我想知道linux內存是如何工作的,我需要編寫自己的簡單內存池(低碎片堆)。

    2熱度

    1回答

    您是否有一些解決方案,如何使對象池(內存池)的對象可以包含不同大小的數據?因此,如果我請求內存池中的某個大小的對象,它會返回一些與我的請求最接近的大小的已分配內存塊。它應該寫在C#。謝謝,因爲我真的不知道,這是什麼和最好的算法最好的收集。在C++中有一些解決方案,但C#沒有內存池。

    5熱度

    1回答

    我爲MyOrder類編寫了自定義操作符new和操作符delete。我正在使用boost :: singleton池分配內存。下面是該程序的測試性能, #include <boost/pool/singleton_pool.hpp> #include <boost/progress.hpp> #include <iostream> #include <new> #include <vecto

    6熱度

    5回答

    我需要一些關於內存池實現&實現的說明。 通過memory pool在維基,它說, 也被稱爲固定大小的塊分配,..., 那些實現從分裂受到影響,因爲變量 塊大小,它可以是不可能的由於性能的原因,在實時系統 中使用它們。 「變量塊大小是否會導致碎片」?固定大小的分配如何解決這個問題?這個wiki說明聽起來有點讓我誤解。我認爲碎片不是由固定大小的分配或由可變大小引起的。在內存池上下文中,特定應用程序的特