在我的程序中,我分配了很多數組(數百萬),它們的大小都很小。在C#中分配一塊內存?
因爲重複分配一個大的內存塊比重複內存塊的速度要快,我一直在尋找一種方法來分配一個大塊內存,保留一個指向該塊中當前位置的指針來繪製下一個數組然後再分配另一個大塊,當這個塊耗盡時。
這是可能在C#中做的,如果是的話,如何?我有一種感覺Marshal.AllocHGlobal
可能是我正在尋找的,但我不太確定C#是否有更好的管理方式。
作爲一個例子,我想分配一個1000字節的內存塊,然後創建一個長度爲4的數組,使用前4個字節,然後創建一個長度爲3的數組,使用下一個3個字節。
閱讀本文http://stackoverflow.com/questions/2648560/allocating-unmanaged-memory-in-c-sharp – Sorceri 2015-03-13 14:44:40
@Ryan是的,你可以以各種方式分配內存,不,你不能讓CLR使用您分配的內存作爲/用於.NET Array/List /? – xanatos 2015-03-13 14:45:29
你總是可以創建一個巨大的數組,並將其邏輯細分爲更小的數組。 – Will 2015-03-13 14:47:39