gpt4 book ai didi

vb.net - 想要 40 GB 内存映射文件,但限制为 4 GB? VB.net

转载 作者:行者123 更新时间:2023-12-02 06:54:25 32 4
gpt4 key购买 nike

我在 .NET 中遇到了一个问题,我的数组受到我拥有的 RAM 数量的限制,并且我需要可以容纳至少 40 GB 字节的数组。我正在考虑使用硬盘驱动器作为虚拟数组的想法不在乎它是否慢。

我正在研究这个想法,并来到了VB.net中的MemoryMappedFile

    Dim mmF As MemoryMappedFile
mmF = MemoryMappedFile.CreateOrOpen("MemArray", 4294967295)

可以创建一个 4 GB 数组,但当我尝试多一个字节时,结果是 4294967296

我收到错误'容量不能大于系统逻辑地址空间的大小。
参数名称:容量'

这是 64 位系统,当我从 x86 构建模式切换到 x64 构建模式时,我现在可以获得更大的空间,但在我想要的 40 GB 时,我收到一个新错误 分页文件太小,无法执行此操作完成。

结果我所要做的就是更改分页文件,该文件在我在答案中发布的屏幕截图中默认为 800 MB,现在可以完美运行!

所以它的上限是 4 GB 吗?这个限制可以在我的系统中的某个地方改变吗?我有超过 900 GB 的可用硬盘空间,为什么 4 GB 是限制,我能做什么,或者我必须完全从基元构建一个文件系统,以便能够按 block 读取 40 GB。

是否有任何引用或组件可以通过虚拟硬盘空间进行大内存阵列?

下面是我的代码

Public Function GetRotation(Data As Byte(), rotation As UInteger) As Byte()
'This works for very big numbers at very fast speeds.
'This cycle rotates the values without looping array.
Dim rotationData As New List(Of Byte)

Dim start As UInteger = Data.Length - rotation Mod Data.Length

For i = 0 To Data.Length - 1
rotationData.Add(Data((start + i) Mod (Data.Length)))
Next

Return rotationData.ToArray()
End Function

Public Function SortLexicoGraphicallyArrayMappedFile(ByRef data As Byte()) As UInteger()
Dim OrderedRotations As New List(Of UInteger)
Dim rotatedData As Byte()
Dim rotation As UInteger = 0


Dim mmF As MemoryMappedFile
'mmF.
mmF = MemoryMappedFile.CreateOrOpen("MemArray", 4294967295) 'CLng(data.LongLength * data.LongLength))
Dim mmVA As MemoryMappedViewAccessor
mmVA = mmF.CreateViewAccessor(0, data.LongLength * data.LongLength)

Dim pos As Long = 0

For rotation = 0 To data.Length - 1
rotatedData = GetRotation(data, rotation)
mmVA.WriteArray(Of Byte)(pos, rotatedData, 0, rotatedData.Length)
pos += rotatedData.LongLength
Next

'TODO later sorting them

Return OrderedRotations.ToArray()
End Function

最佳答案

解决了!

您需要修改虚拟内存分页文件并在构建模式下使用 x64

enter image description here

关于vb.net - 想要 40 GB 内存映射文件,但限制为 4 GB? VB.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53664802/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com