如何在 C# (win + linux) 中分配一个大的连续内存块

本文关键字:一个 连续 内存 win linux 分配 | 更新日期: 2023-09-27 18:36:44

我正在 C# 中寻找一种内存分配方法,该方法提供连续的内存块 (> 4 GiB)。此方法应该适用于 Mono 以及 Microsoft .NET。如果此内存不受管理,则没有问题。

Linux:
我认为通过DllImport调用mmap对于Mono来说是一个不错的选择。

窗户:
我找到了几种方法,如HeapAlloc,AllocHGlobal,...,但它们似乎都没有提供64位大小的参数。

还有一种方法可以为 GC 启用大型对象。这些对象是连续的吗?

如何在 C# (win + linux) 中分配一个大的连续内存块

Marshal.AllocHGlobal()有一个IntPtr版本,可以支持64位值。

是什么让你说它没有。