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

Does /usr/bin/time include post program garbage collection for a java program?

我正在编写一个用 Java 和 C++ 实现的基准矩阵乘法程序。我想减少垃圾收集对 Java 程序计时的影响,以便尽可能匹配 C++ 版本。

为此,我将矩阵数组设为主要 class 的最终静态成员,我认为在我的程序线程完成执行后将收集这些成员。

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 线程完成的)

作为一般规则,Java 运行时环境不会在退出时执行垃圾收集。更直接的关注​​点是 JIT 的性能成本,当然还有 Write Dumb Code。此外,main() 的签名采用 String[] like

public static void main(String[] args) {