【问题标题】:Does /usr/bin/time include post program garbage collection for a java program?/usr/bin/time 是否包括 Java 程序的程序后垃圾收集?
【发布时间】: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


【解决方案1】:

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

public static void main(String[] args) {

【讨论】:

    猜你喜欢
    • 2011-01-26
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多