获取另一个方法的运行时间的方法

a method to get the runtime of another method

我知道如何从这里获取方法的运行时间 How do I time a method's execution in Java?

现在我需要多次获取运行时间,所以有没有办法做类似

的东西
public long exTime(methodToTime())
    long startTime = System.nanoTime();
    methodToTime();
    long endTime = System.nanoTime();

    long duration = (endTime - startTime);

感谢您的帮助

编辑:更具体地说,我当前的代码是

        long startTime0 = System.nanoTime();
        revealStr("1001*00*10");
        long endTime0 = System.nanoTime();
        long duration0 = (endTime0 - startTime0);
        System.out.println("The runtime is " + endTime0);
          
        System.out.println("10**01*1*0");
        long startTime1 = System.nanoTime();    
        revealStr("10**01*1*0");
        long endTime1 = System.nanoTime();
        long duration1 = (endTime0 - startTime1);
        System.out.println("The runtime is " + endTime1);
        
        System.out.println("0*1*0**0**");
        long startTime2 = System.nanoTime();
        revealStr("0*1*0**0**");
        long endTime2 = System.nanoTime();
        long duration2 = (endTime2 - startTime2);
        System.out.println("The runtime is " + endTime2);
        
        System.out.println("****1*1***");
        long startTime3 = System.nanoTime();
        revealStr("****1*1***");
        long endTime3 = System.nanoTime();
        long duration3 = (endTime3 - startTime3);
        System.out.println("The runtime is " + endTime3);
        
        System.out.println("**********");
        long startTime4 = System.nanoTime();
        revealStr("**********");
        long endTime4 = System.nanoTime();
        long duration4 = (endTime4 - startTime4);
        System.out.println("The runtime is " + endTime0);

这是重复和多余的

这是我用来比较两种方法性能的一个util方法。

public static void testPerformance(long loopTime, Runnable r1,Runnable r2){
        long startTime;
        long endTime;
        startTime=System.currentTimeMillis();
        for (int i = 0; i < loopTime; i++) {
            r1.run();
        }
        endTime=System.currentTimeMillis();
        System.out.printf("loop %d times, total spend %d s, each spend %f ms\n",loopTime,(endTime-startTime)/1000,(double)(endTime-startTime)/loopTime);

        startTime=System.currentTimeMillis();
        for (int i = 0; i < loopTime; i++) {
            r2.run();
        }
        endTime=System.currentTimeMillis();
        System.out.printf("loop %d times, total spend %d s, each spend %f ms\n",loopTime,(endTime-startTime)/1000,(double)(endTime-startTime)/loopTime);
    }

你可以这样使用:

PerformanceUtils.testPerformance(loopTime,()->{
        //do some thing
    },()->{
        //do some thing
    });