将Java限制为64MB内存

时间:2018-12-23 10:38:47

标签: java memory

我有作业分配,内存限制为64 MB,我的代码使用68 MB。 我已经将数组设置为null并运行Runtime.getRuntime().gc();

我能做些什么吗?从内存中删除不需要的所有内容?怎么样?

我有3个int数组和3个float数组,2个double数组,它们都具有相同的N给定大小。

       a = null;
       size = null;
       prize = null;

     required = null;
     b= null;
     potr= null;

     result = null;


     Runtime.getRuntime().gc();

3 个答案:

答案 0 :(得分:3)

首先,使用命令行选项-Xmx64m检查程序是否真的不能以64 MB运行(确切的语法可能取决于您的JRE版本)。只有在该设置下获得OutOfMemoryError时,您才有问题。

如果Java在不受命令行限制的情况下运行,则它倾向于获取比严格必要更多的内存。因此,我想,如果您在Windows Task Manager中看到68 MB或等效的文件,一切都会好的。

如果您确实遇到OutOfMemoryError,则可以尝试分析您的应用程序。在我们公司,我们正在使用商业化的JProfiler,该工具可以为您提供有关内存使用情况的详细信息。但是了解分析结果需要学习曲线。

另一种方法是在此处或https://codereview.stackexchange.com/处发布完整的代码,以便我们提供更具体的帮助。

答案 1 :(得分:-1)

大概是代码占用了大量内存。使用较少的晦涩的库类。或获取JDK 1.00。

答案 2 :(得分:-1)

您的代码引用的所有外部库是什么.....? jvm会在执行之前将所有类加载到内存中。...如果您删除了不必要的导入和库,这将减少您的内存占用...也可以在满足您要求的情况下使用功能较少的早期版本的jvm。 / p>