คำถามติดแท็ก nanotime

15
System.nanoTime () ไร้ประโยชน์อย่างสมบูรณ์หรือไม่
ดังที่บันทึกไว้ในบล็อกโพสต์ระวังของ System.nanoTime () ใน Java , บนระบบ x86, System.nanoTime ของ Java () ส่งคืนค่าเวลาโดยใช้ตัวนับCPU ที่เฉพาะเจาะจง ตอนนี้ให้พิจารณากรณีต่อไปนี้ที่ฉันใช้เพื่อวัดเวลาการโทร: long time1= System.nanoTime(); foo(); long time2 = System.nanoTime(); long timeSpent = time2-time1; ขณะนี้ในระบบมัลติคอร์อาจเป็นไปได้ว่าหลังจากการวัดเวลา 1 เธรดจะถูกกำหนดเวลาให้กับโปรเซสเซอร์อื่นซึ่งมีตัวนับน้อยกว่า CPU ก่อนหน้านี้ ดังนั้นเราสามารถรับค่าใน time2 ซึ่งน้อยกว่า time1 ดังนั้นเราจะได้รับค่าลบใน timeSpent เมื่อพิจารณาถึงกรณีนี้แล้ว System.nanotime นั้นไร้ประโยชน์มากในตอนนี้หรือไม่? ฉันรู้ว่าการเปลี่ยนเวลาของระบบไม่ส่งผลกระทบต่อ nanotime นั่นไม่ใช่ปัญหาที่ฉันอธิบายข้างต้น ปัญหาคือ CPU แต่ละตัวจะเก็บตัวนับที่แตกต่างกันนับตั้งแต่เปิดตัว ตัวนับนี้สามารถต่ำกว่าบน CPU ตัวที่สองเมื่อเทียบกับ …
153 java  nanotime 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.