/ usr / bin / time是否包含java程序的后程序垃圾收集?

时间:2015-03-16 04:27:30

标签: java linux time garbage-collection

我正在编写一个用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线程完成的)

1 个答案:

答案 0 :(得分:2)

作为一般规则,Java Runtime Environment不会在退出时执行垃圾回收。更直接的问题是JIT的性能成本,当然还有Write Dumb Code。此外,main()的签名需要String[]类似

public static void main(String[] args) {