我正在尝试对一堆数据进行排序,以便输入到程序的数据大小可以大于JVM可用的内存,并且处理需要外部排序,这比Quicksort要慢得多.
有没有办法在运行时获取JVM可用的内存,这样我就可以尽可能地使用就地排序,并且只在数据输入太大时切换到Mergesort?
在java.lang.Runtime课程上查看这些方法:
例
Runtime rt = Runtime.getRuntime();
System.err.println(String.format("Free: %d bytes, Total: %d bytes, Max: %d bytes",
rt.freeMemory(), rt.totalMemory(), rt.maxMemory()));
Run Code Online (Sandbox Code Playgroud)
另请注意,如果内存总量耗尽,您始终可以使用-XmxJVM参数以较大的堆分配来启动JVM; 例如
java -Xmx256M MyClass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3800 次 |
| 最近记录: |