Questions tagged «virtual-memory»

8
Linux下Java的虚拟内存使用率,使用的内存过多
我在Linux下运行的Java应用程序有问题。 当使用默认的最大堆大小(64 MB)启动应用程序时,我看到使用tops应用程序为该应用程序分配了240 MB的虚拟内存。这会给计算机上的某些其他软件带来一些问题,这是相对有限的资源。 据我所知,保留的虚拟内存将不会被使用,因为一旦达到堆限制,OutOfMemoryError就会抛出。我在Windows下运行了相同的应用程序,并且看到虚拟内存大小和堆大小相似。 无论如何,我可以配置Linux下用于Java进程的虚拟内存吗? 编辑1:问题不是堆。问题是,例如,如果我将堆设置为128 MB,Linux仍然会分配210 MB的虚拟内存,这是永远不需要的。** 编辑2:使用ulimit -v允许限制虚拟内存量。如果设置的大小小于204 MB,则即使该应用程序不需要204 MB(仅64 MB)也不会运行。因此,我想了解为什么Java需要这么多虚拟内存。可以更改吗? 编辑3:系统中还运行着其他一些嵌入式应用程序。而且系统确实有虚拟内存限制(根据注释和重要细节)。

4
为什么这个吃记忆的人真的不吃记忆?
我想创建一个程序来模拟Unix服务器上的内存不足(OOM)情况。我创建了这个超级简单的内存消耗者: #include <stdio.h> #include <stdlib.h> unsigned long long memory_to_eat = 1024 * 50000; size_t eaten_memory = 0; void *memory = NULL; int eat_kilobyte() { memory = realloc(memory, (eaten_memory * 1024) + 1024); if (memory == NULL) { // realloc failed here - we probably can't allocate more memory for whatever …

4
虚拟内存和物理内存之间有什么区别?
我经常对操作系统中的虚拟化概念感到困惑。考虑到RAM是物理内存,为什么我们需要虚拟内存来执行进程? 当来自外部硬盘驱动器的进程(程序)被带到主存储器(物理存储器)执行时,该虚拟存储器位于何处。 谁负责虚拟内存,虚拟内存的大小是多少? 假设RAM的大小为4GB(即2 ^ 32-1地址空间),虚拟内存的大小是多少?


2
x86分页如何工作?
这个问题的目的是填补有关该主题的大量免费信息的空白。 我相信一个好的答案将适合一个大的SO答案,或者至少可以包含几个答案。 主要目标是向完整的初学者提供足够的信息,以便他们可以自己阅读手册,并能够理解与分页相关的基本OS概念。 建议的准则: 答案应该是初学者友好的: 具体的,但可能简化的示例非常重要 欢迎使用所示概念的应用程序 引用有用的资源是好的 欢迎对操作系统如何使用分页功能进行少量讨论 欢迎使用PAE和PSE说明 欢迎小小进取x86_64 相关问题以及为什么我认为它们不是伪造的: x86页表如何工作?:标题几乎与此问题相同,但正文会询问与cr3和TLB有关的特定问题。这个问题是这个问题的一部分。 x86虚拟化如何工作:正文仅要求提供资源。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.