【发布时间】:2015-06-16 12:57:17
【问题描述】:
我需要在不使用“Kernel32.dll”的情况下确定 C# 中的内存页面大小
SYSTEM_INFO si;
GetSystemInfo(&si);
这很重要,因为代码应该是跨平台的,我们不应该有平台特定的代码。
是否有任何 .NET 类提供该数据?
【问题讨论】:
-
那么您将如何在非平台特定代码中使用页面大小?
-
这很简单。我们正在使用 MemoryMappedFiles ,当视图具有 Memory Page Size 的大小时,它们的效果最好。到目前为止,确定内存页面大小是唯一的问题。
-
@xanatos
Environment.SystemPageSize是一个很好的缓冲区大小,唯一特定于平台的部分是不同的平台会给出不同的结果,所以它不是特定于平台的你会用它。
标签: c# .net memory-management