如何使用控制台计算java程序的执行时间和内存使用情况?

时间:2018-01-20 06:20:05

标签: java multithreading performance time command-line-arguments

我制作了一个类似于以下代码的Java程序:

class class1{
    public static void main(String []args){
        for(int i=0;i<100;i++){
            class2 c2 = new class2();
            c2.start();
        }
    }
}
class class2 extends Thread{
    public void run(){
        // do some long job here
    }
}

此程序使用运行了大量时间的线程。我想分析程序所花费的时间和内存,以便进一步优化它。但是像这样计算时间的经典方法并不能完成所需的工作:

long startTime = System.currentTimeMillis();

doReallyLongThing();

long endTime = System.currentTimeMillis();

System.out.println("Time taken : " + (endTime - startTime) + " milliseconds");

因为class1在线程完成工作之前完成了工作。所以我想要一个命令行解决方案来获取执行时间。像使用标志作为命令行参数的东西。内存计算也一样。我发现 jconsole 命令有助于分析java程序的各个方面,但是它在单独的终端中打开,对于我正在寻找的目的而言并不是那么好。

0 个答案:

没有答案