如何在 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 位值。

你凭什么说不是。