【发布时间】:2011-03-25 10:20:36
【问题描述】:
我编写了一个 java 程序,可以在具有不同数量处理器的不同机器上测试几个多线程算法的速度。
在某些机器上,归并排序* 会失败,因为它需要相当大的堆空间来处理非常大的数组。我可以在运行程序之前自己轻松更改 Java 堆空间,但我觉得更健壮和简单的方法是从程序本身内部完成这项任务。
有没有办法在 java 程序的过程中从虚拟机请求/获得更多的堆空间?
注意:我知道我可以使用“java -Xmx1g Program”之类的脚本来执行该程序;我对这个主题的好奇心部分是学术性的。
*我的实现没有内联合并。它需要 O(n) 额外的内存。
【问题讨论】:
-
我认为这是不可能的。
标签: java heap-memory mergesort scalability