【发布时间】:2015-05-18 03:26:37
【问题描述】:
我正在编写一个用 Java 和 C++ 实现的基准矩阵乘法程序。我想减少垃圾回收对 Java 程序时序的影响,以尽可能地匹配 C++ 版本。
为此,我已将矩阵数组设为主类的最终静态成员,我认为它们将在我的程序线程完成执行后被收集。
public class MatMult {
public static final int m1[][] = new int[BIGNUM][BIGNUM];
// ... repeat
public static void main() {
// ... do fun maths
}
}
当我对这些 (/usr/bin/time java MatMult) 计时时,计时是否包括在 MatMult 完成执行后清理静态成员所花费的时间? (我的印象是此时清理是由单独的JVM线程完成的)
【问题讨论】:
-
GC一般只在需要的时候运行,关机时不需要运行。
标签: java linux time garbage-collection