我正在运行一个程序来构建一个非常大的对象,并且我将通过为此进程分配超过2GB的内存而获益匪浅。提前致谢。如何为Windows中的进程分配超过2GB的内存?
回答
您似乎指的是32位Windows中虚拟内存的2GB限制。您无法在32位系统上绕过此限制。
您可以在boot.ini配置中使用/ 3gb开关,并标记进程“大地址空间感知”......但尝试在32位操作系统的内存中加载2GB并不容易用于本机代码或托管代码的任务。 –
@alexei机器的管理员可以做/ 3gb,但应用程序不能 –
您不能分配一个大于2GB的单个对象(或一个数组),这是一个CLR限制。你必须把这个物体分成几块。
所以假设我有一个3GB的对象,我分裂成6个0.5GB的对象,是不是会超过2GB的进程限制?再次感谢。 – abw333
而且,TBH,如果你试图管理一个这样大小的对象,你需要做一些反思。 –
@Schroedingers Cat想要为某些算法分配巨大对象是完全合理的。 –
.NET Framework 4.5允许在64位平台上创建大于2GB的数组。此功能默认情况下未启用,必须使用gcAllowVeryLargeObjects元素通过配置文件启用。
http://msdn.microsoft.com/en-us/library/hh285054(v=vs.110).aspx
这是唯一的方法吗?如果我不需要,我真的不想切换到VS2012。 –
- 1. 分配的超过2GB的64位二进制
- 2. 在32位.NET进程中分配超过1,000 MB的内存
- 3. 导致2GB内存分配的NSDate
- 4. 如何增加超过2GB的PHP内存限制?
- 5. 进程的内存分配
- 6. 在linux中为进程分配内存
- 7. Windows 2Gb内存限制
- 8. 如何将分配的内存分解为多个区域并分配进程?
- 9. 内存分配 - 15 GB如何等于2GB?
- 10. 如何杀死匹配超过30分钟的grep的进程?
- 11. 进程内存v.s. AppDomain内存分配
- 12. ImageMagick使用超过2GB的内存来转换PDF文件
- 13. Malloc分配内存超过RAM
- 14. dma_alloc_coherent()内存分配失败,超过4MB
- 15. 内存分配过程
- 16. 在32位Linux内核上使用C++在堆上分配超过2GB的内存
- 17. 分配给进程的虚拟内存
- 18. 奇怪的malloc行为不会允许在64位进程上分配更多的2GB内存
- 19. 无法在从其他进程分配的进程0内存中写入超过4个字符
- 20. 如何在x64 windows7上为tomcat分配超过1 GB的内存
- 21. 进程从内核分配内存块
- 22. 分割为2GB时的linux内存映射:2GB而不是1GB:3GB
- 23. Java中使用超过所分配的内存
- 24. 如何访问分配给不同进程的内存?
- 25. Erlang:如何限制分配给进程的内存
- 26. 你如何预先分配内存到solaris的进程?
- 27. 在内存分配分析过程中内存分配不断增加
- 28. 当尝试分配X内存量时,sqlplus超出进程内存
- 29. 试用C - 为什么我不能分配和使用2GB的内存?
- 30. 内存分配和进程的内存使用
即使它可能使你的程序更容易编写,分配2GB内存+块肯定会导致您的用户较差的应用程序。 – JaredPar
你如何构建一个2GB的对象? – Gabe
@gabe一个数组是最明显的例子 –