Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะวัดเวลาที่ผ่านไปใน Java ได้อย่างไร?


โดยทั่วไป เวลาที่ผ่านไปคือเวลาจากจุดเริ่มต้นถึงจุดสิ้นสุดของเหตุการณ์ ต่อไปนี้เป็นวิธีต่างๆ ในการค้นหาเวลาที่ผ่านไปใน Java -

การใช้เมธอด currentTimeMillis()

currentTimeMillis() วิธีการส่งกลับเวลาปัจจุบันในหน่วยมิลลิวินาที ในการหาเวลาที่ผ่านไปสำหรับวิธีการหนึ่งๆ คุณสามารถรับความแตกต่างระหว่างค่าของเวลาก่อนและหลังการดำเนินการของวิธีการที่ต้องการได้

ตัวอย่าง

 ตัวอย่างคลาสสาธารณะ { การทดสอบโมฆะสาธารณะ () {int num =0; สำหรับ (int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } โมฆะคงที่สาธารณะ main(String args[]){ //เริ่มต้นเวลานานเริ่มต้น =System.currentTimeMillis (); //เริ่มการชมใหม่ Example().test(); //เวลาสิ้นสุด สิ้นสุดแบบยาว =System.currentTimeMillis(); เวลานาน =สิ้นสุด - เริ่ม; System.out.println(); System.out.println("เวลาที่ผ่านไป:"+เวลา +" มิลลิวินาที"); }}

ผลลัพธ์

<ก่อน>0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276 , 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176 , 1225, 1275,เวลาที่ผ่านไป:4 มิลลิวินาที

การใช้เมธอด nanoTime()

เมธอด nanoTime() จะคืนค่าเวลาปัจจุบันเป็นนาโนวินาที ในการหาเวลาที่ผ่านไปสำหรับวิธีการหนึ่งๆ คุณสามารถรับความแตกต่างระหว่างค่าของเวลาก่อนและหลังการดำเนินการของวิธีการที่ต้องการได้

ตัวอย่าง

 ตัวอย่างคลาสสาธารณะ { การทดสอบโมฆะสาธารณะ () { int num =0; สำหรับ (int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } โมฆะคงที่สาธารณะ main(String args[]){ //เริ่มต้นเวลานานเริ่มต้น =System.nanoTime(); //เริ่มการชมใหม่ Example().test(); //เวลาสิ้นสุด สิ้นสุดแบบยาว =System.nanoTime(); เวลานาน =สิ้นสุด - เริ่ม; System.out.println(); System.out.println("เวลาที่ผ่านไป:"+เวลา); }}

ผลลัพธ์

<ก่อน>0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276 , 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176 , 1225, 1275,เวลาที่ผ่านไป:1530200

การใช้คลาสทันใจ

วิธีการ now() ของคลาส Instant ส่งกลับเวลาปัจจุบัน และวิธีการ Duration.between() จะคืนค่าส่วนต่างระหว่างค่าเวลาสองค่าที่ระบุเพื่อรับเวลาที่ผ่านไป ดึงค่าเวลาก่อนและหลังการดำเนินการตามวิธีที่ต้องการและดึงข้อมูล ระยะเวลาโดยใช้เมธอด Duration.between()

ตัวอย่าง

นำเข้า java.time.Duration;import java.time.Instant; ตัวอย่างคลาสสาธารณะ { การทดสอบโมฆะสาธารณะ () { int num =0; สำหรับ (int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } โมฆะคงที่สาธารณะ main (String args []) {// เวลาเริ่มต้น การเริ่มต้นทันที =Instant.now (); ตัวอย่างใหม่().test(); //เวลาสิ้นสุด สิ้นสุดทันที =Instant.now(); นาน =Duration.between(เริ่ม, สิ้นสุด).toMillis(); System.out.println(); System.out.println(เวลา+" มิลลิวินาที"); }}

ผลลัพธ์

<ก่อน>0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276 , 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176 , 1225, 1275,3 มิลลิวินาที

การใช้คลาส StopWatch

ไลบรารี่ทั่วไปของ Apache มีคลาสที่เรียกว่า Stopwatch ซึ่งให้เมธอด start() stop() และ getTime() เพื่อค้นหาเวลาที่ใช้ในการดำเนินการเมธอด

ต่อไปนี้เป็นไฟล์ maven ของแพ็คเกจนี้ -

 org.apache.commons commons-lang3 3.7

ตัวอย่าง

นำเข้า org.apache.commons.lang3.time.StopWatch; ตัวอย่างคลาสสาธารณะ { การทดสอบโมฆะสาธารณะ () { int num =0; สำหรับ (int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } โมฆะคงที่สาธารณะหลัก (สตริง args []) {// การตรวจสอบคลาส StopWatch StopWatch obj =ใหม่ StopWatch (); //การเริ่มต้นนาฬิกา obj.start(); ตัวอย่างใหม่().test(); //หยุดนาฬิกา obj.stop(); System.out.println(); System.out.println("เวลาที่ผ่านไป:"+obj.getTime() +" มิลลิวินาที"); }}

ผลลัพธ์

<ก่อน>0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276 , 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176 , 1225, 1275,เวลาที่ผ่านไป:1 มิลลิวินาที