我想运行这个巨大的C++项目,在内存中使用高达8.3 GB的内存。我可以在某些情况下运行此程序吗?还是不可能?C++上的内存分配限制
回答
这很好。你只需要在64位架构上,并确保有足够的交换空间+物理内存可用
这真的取决于。如果程序需要始终具有全部8.3 GB的内存(working size),则可能需要在计算机中安装类似数量的内存。
现在假设您有4 GB的RAM。在这种情况下,由于使用了swap(为了扩大虚拟内存大小,内存交换进入和退出的硬盘区域),您将最有可能执行该程序。但是,即使它实际上可以工作,但由于trashing,它可能运行非常缓慢(达不到真正可用的程度)。另一方面,如果您的程序处理8.3 GB的数据,但它在较小的数据块中处理,这意味着所有数据都不在内存中。然后,你不需要在你的电脑上安装如此大量的RAM。
由于奥利查尔斯沃思刚提过,您将需要一个64位的系统(包括硬件和OS)
或者,至少,一个系统
PAE能力,如果你想在你的系统
安装超过4 GB的RAM 。
PAE不会帮你:即使操作系统可以使用更多,每个程序仍然限制在4GB的内存中。 – Yexo
@Yexo是的,你是对的。在这种情况下,由于OP似乎要求单个应用程序(过程),所以PAE将毫无用处。我相应地解决了我的答案。 – betabandido
是的,这是可能的。您需要处于64位环境中,当然可以使用RAM。您可能仍然无法一次分配超过4GB的连续地址空间。不过,您可能需要以更小的块来分配它。
- 1. 限制skflow中的GPU内存分配
- 2. 限制犀牛的内存分配javascript
- 3. 动态内存分配的限制
- 4. C:分配限制
- 5. 如何限制Kubernetes上每个节点的可分配内存?
- 6. 内存分配C++
- 7. 内存分配,C++
- 8. C内存分配
- 9. C++分配内存
- 10. 内存分配C
- 11. 内存分配问题后,增加内存限制
- 12. C++内存分配在C
- 13. C中的内存分配
- 14. C++中的内存分配
- 15. C++中的内存分配
- 16. Enum如何在C上分配内存?
- 17. 动态内存分配在C++上的动态分配内存中
- 18. C++内存分配 - 分配子类到
- 19. 内存泄漏在C /内存分配++
- 20. 核心数据存储限制,缓存限制,iPhone上的内存限制
- 21. C内存分配错误
- 22. C函数分配内存
- 23. C++可变内存分配
- 24. 内存分配在C
- 25. C++内存分配问题
- 26. C++:内存分配器
- 27. 高级C内存分配
- 28. C++分配内存一类
- 29. C++分配内存缺点?
- 30. C:分配内存混乱
这是一个令人困惑的问题。如果你知道它使用8.3GB,那么你必须知道它运行。 –
不..我已经计算出它应该使用多少内存。如果我运行它,它说不好的分配,所以我必须以某种方式扩展内存限制。 –
然后你并不知道程序使用什么 - 但是你想让程序运行的数据集的大小。 –