[Java] Cách tính thời gian trôi qua / thời gian thực hiện trong Java

Chào các bạn, trong bài viết này, chúng ta sẽ cùng tìm hiểu về cách tính thời gian trôi qua / thời gian thực hiện trong Java

Trong Java, có thể sử dụng cách bên dưới để đo lường thời gia trôi qua.

1. System.nanoTime()
Giải pháp này được đề xuất để đo thời gia trôi qua trong Java.

ExecutionTime1.java
Java:
package com.mkyong.time;

import java.util.concurrent.TimeUnit;

public class ExecutionTime1 {

    public static void main(String[] args) throws InterruptedException {

        //start
        long lStartTime = System.nanoTime();

        //task
        calculation();

        //end
        long lEndTime = System.nanoTime();

        //time elapsed
        long output = lEndTime - lStartTime;

        System.out.println("Elapsed time in milliseconds: " + output / 1000000);

    }

    private static void calculation() throws InterruptedException {

        //Sleep 2 seconds
        TimeUnit.SECONDS.sleep(2);

    }
}
Kết quả (có thể khác nhau tùy vào sức mạnh máy tính của bạn)
Code:
2004

2. System.currentTimeMillis()

ExecutionTime2.java
Java:
package com.mkyong.time;

import java.util.concurrent.TimeUnit;

public class ExecutionTime2 {

    public static void main(String[] args) throws InterruptedException {

        long lStartTime = System.currentTimeMillis();

        calculation();

        long lEndTime = System.currentTimeMillis();

        long output = lEndTime - lStartTime;

        System.out.println("Elapsed time in milliseconds: " + output);

    }

    private static void calculation() throws InterruptedException {

        //Sleep 2 seconds
        TimeUnit.SECONDS.sleep(2);

    }
}
Kết quả (có thể khác nhau)
Code:
2006

3. Instant.now().toEpochMilli()
Trong Java 8, có thể thử với API mói là java.time.Instant.

ExecutionTime3.java
Java:
package com.mkyong.time;

import java.time.Instant;
import java.util.concurrent.TimeUnit;

public class ExecutionTime3 {

    public static void main(String[] args) throws InterruptedException {

        long lStartTime = Instant.now().toEpochMilli();

        calculation();

        long lEndTime = Instant.now().toEpochMilli();

        long output = lEndTime - lStartTime;

        System.out.println("Elapsed time in milliseconds: " + output);

    }

    private static void calculation() throws InterruptedException {

        //Sleep 2 seconds
        TimeUnit.SECONDS.sleep(2);

    }
}
Kết quả (có thể khác nhau)
Code:
2006

4. Date().getTime()

ExecutionTime4.java
Java:
package com.mkyong.time;

import java.util.Date;
import java.util.concurrent.TimeUnit;

public class ExecutionTime4 {

    public static void main(String[] args) throws InterruptedException {

        long lStartTime = new Date().getTime();

        calculation();

        long lEndTime = new Date().getTime();

        long output = lEndTime - lStartTime;

        System.out.println("Elapsed time in milliseconds: " + output);

    }

    private static void calculation() throws InterruptedException {

        //Sleep 2 seconds
        TimeUnit.SECONDS.sleep(2);

    }
}
Kết quả (có thể khác nhau)
Code:
2007


Cám ơn các bạn đã theo dõi. Hẹn gặp lại các bạn trong các bài viết sau :)

Bài viết tham khảo tại: https://mkyong.com/java/how-do-calculate-elapsed-execute-time-in-java
 

Bình luận