Tôi thấy trên Internet mà tôi được cho là sử dụng System.nanoTime() nhưng điều đó không hiệu quả đối với tôi - nó mang lại cho tôi thời gian với độ chính xác mili giây. Tôi chỉ cần micro giây trước và sau khi chức năng của tôi thực hiện để tôi biết phải mất bao lâu. Tôi đang sử dụng Windows XP.Làm thế nào tôi có thể đo thời gian với độ chính xác micro giây trong Java?
Về cơ bản, tôi có mã này, ví dụ, thực hiện 1 triệu đến 10 triệu lần chèn trong một danh sách liên kết java. Vấn đề là tôi không thể đo được độ chính xác; đôi khi phải mất ít thời gian hơn để chèn mọi thứ vào danh sách nhỏ hơn.
Dưới đây là một ví dụ:
class test
{
public static void main(String args[])
{
for(int k=1000000; k<=10000000; k+=1000000)
{
System.out.println(k);
LinkedList<Integer> aux = new LinkedList<Integer>();
//need something here to see the start time
for(int i=0; i<k; i++)
aux.addFirst(10000);
//need something here to see the end time
//print here the difference between both times
}
}
}
Tôi đã làm điều này nhiều lần - có một vòng lặp bên ngoài làm nó 20 lần cho mỗi k - nhưng kết quả không tốt. Đôi khi phải mất ít thời gian hơn để thực hiện 10 triệu lần chèn hơn 1 triệu, bởi vì tôi không nhận được thời gian đo chính xác với những gì tôi đang sử dụng bây giờ (System.nanoTime())
Chỉnh sửa 2: Có, tôi ' m bằng cách sử dụng Sun JVM.
Chỉnh sửa 3: Tôi có thể đã làm điều gì đó sai trong mã, tôi sẽ xem nếu thay đổi nó làm những gì tôi muốn.
Chỉnh sửa 4: Lỗi của tôi, có vẻ như System.nanoTime() hoạt động. Phew.
Phiên bản Java nào? Trên máy XP của tôi w/JDK1.6.0_06, nanoTime() có độ chính xác thông qua các vị trí thập phân cuối cùng. Tôi giả sử phiên bản của bạn trả về các giá trị luôn luôn kết thúc bằng ba số không. – basszero
Sun JVM là không đủ, VERSION của nó? (Câu trả lời của bạn là chính xác, tôi không hỏi 'câu hỏi đúng. Tôi giả định mọi người sử dụng Sun JVM) – basszero
Java -version trong cmd cho tôi: phiên bản java "1.7.0-ea" Và 2 dòng khác. Dù bằng cách nào, đó là một sai lầm trong mã của tôi. Rất tiếc, tôi không thể tìm thấy lỗi ngay cả sau một lúc tìm kiếm. –