如何在 C# (win + linux) 中分配一个大的连续内存块
How can I allocate a large contiguous memory chunk in C# (win + linux)
我正在 C# 中寻找一种内存分配方法,它提供连续的内存块 (> 4 GiB)。此方法应该适用于 Mono 以及 Microsoft .NET。如果此内存不受管理,则没有问题。
Linux:
我认为通过 DllImport 调用 mmap 是 Mono 的不错选择。
Windows:
我发现了几种方法,如 HeapAlloc、AllocHGlobal 等,但它们似乎都没有提供 64 位大小参数。
还有一种方法可以为GC启用大对象。这些对象是连续的吗?
Marshal.AllocHGlobal()
有一个 IntPtr
版本,可以支持 64 位值。
你凭什么说不是。
我正在 C# 中寻找一种内存分配方法,它提供连续的内存块 (> 4 GiB)。此方法应该适用于 Mono 以及 Microsoft .NET。如果此内存不受管理,则没有问题。
Linux:
我认为通过 DllImport 调用 mmap 是 Mono 的不错选择。
Windows:
我发现了几种方法,如 HeapAlloc、AllocHGlobal 等,但它们似乎都没有提供 64 位大小参数。
还有一种方法可以为GC启用大对象。这些对象是连续的吗?
Marshal.AllocHGlobal()
有一个 IntPtr
版本,可以支持 64 位值。
你凭什么说不是。