我们将 Java 用于我们的项目 www.aerospaceresearch.net/constellation,并直接从已卸载的 java bin 文件夹中使用 Java。
在操作系统甚至 32 位和 64 位版本之间,我们对这个 java 的 ram 使用有一些问题。是否可以设置 ram 使用的上限,以便 Java 对 ram 进行动态重新排列,例如它总是低于 150mb?
这将真正帮助我们解决一些小问题,并将我们的应用程序带到内存功能有限的系统中。
提前致谢, 安德烈亚斯
从您的问题很难判断,但您可能正在寻找Sun 的Oracle工具-Xmx
中的选项,该选项设置 Java 内存堆的最大大小。java
有关该版本java
工具提供的各种非标准功能的详细信息(包括几个与堆相关的功能),请java -X
在命令提示符下键入。对于我安装的版本,这给了我:
爪哇 -X -Xmixed 混合模式执行(默认) -Xint 仅解释模式执行 -Xbootclasspath:<目录和 zip/jar 文件由 :> 分隔 设置引导类和资源的搜索路径 -Xbootclasspath/a:<目录和 zip/jar 文件由 :> 分隔 附加到引导类路径的末尾 -Xbootclasspath/p:<目录和 zip/jar 文件由 :> 分隔 在引导类路径前面添加 -Xnoclassgc 禁用类垃圾收集 -Xincgc 启用增量垃圾回收 -Xloggc:<file> 将 GC 状态记录到带有时间戳的文件中 -Xbatch 禁用后台编译 -Xms<size> 设置初始 Java 堆大小 -Xmx<size> 设置最大 Java 堆大小 -Xss<size> 设置java线程栈大小 -Xprof 输出 cpu 分析数据 -Xfuture 启用最严格的检查,预测未来的默认值 -Xrs 减少 Java/VM 对 OS 信号的使用(参见文档) -Xcheck:jni 对 JNI 函数执行额外的检查 -Xshare:off 不尝试使用共享类数据 -Xshare:如果可能,自动使用共享类数据(默认) -Xshare:on 要求使用共享类数据,否则失败。 -X 选项是非标准的,如有更改,恕不另行通知。
如果您使用不同的 Java 实现,这些选项可能会有所不同;并注意上述末尾的警告。
您可以尝试使用类似...
java -Xmx128m BigApp
但是,如果您的应用程序实际上超过了 128 MB 堆限制,您可能会遇到内存不足错误。
[更新] 在 64 位方面,有一个特殊的参数使 64 位引用占用更少的空间,但我现在找不到它。它是新 JRE 之一(1.6?)的标准。