在我的程序中,我分配了很多数组(数百万),它们的大小都很小。在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