Độ chính xác Vs. Độ chính xác
Những gì tôi muốn biết là liệu tôi nên sử dụng System.civerseTimeMillis () hoặc System.nanoTime () khi cập nhật vị trí của đối tượng trong trò chơi của mình? Sự thay đổi chuyển động của họ tỷ lệ thuận với thời gian đã trôi qua kể từ cuộc gọi cuối cùng và tôi muốn chính xác nhất có thể.
Tôi đã đọc được rằng có một số vấn đề nghiêm trọng về độ phân giải thời gian giữa các hệ điều hành khác nhau (cụ thể là Mac / Linux có độ phân giải gần 1 ms trong khi Windows có độ phân giải 50ms ??). Tôi chủ yếu chạy các ứng dụng của mình trên windows và độ phân giải 50ms có vẻ không chính xác.
Có lựa chọn nào tốt hơn hai cái tôi liệt kê không?
Bất kỳ đề xuất / ý kiến?
System.currentTimeMillis()
: pzemtsov.github.io/2017/07/23/the-slow-cientimemillis.html
nanoTime
thường chính xác hơn chính xác so với currentTimeMillis nhưng đây cũng là một cuộc gọi tương đối đắt tiền.currentTimeMillis()
chạy trong một vài (5-6) đồng hồ cpu, nanoTime phụ thuộc vào kiến trúc cơ bản và có thể là hơn 100 đồng hồ cpu.