ฟังก์ชัน Clock() ในภาษาซี

Fangkchan Clock Ni Phas A Si



ในเรื่องนี้ คำแนะนำเกี่ยวกับลินุกซ์ บทความเราจะแสดงวิธีการใช้งาน นาฬิกา() ฟังก์ชัน ซึ่งเป็นหนึ่งในทรัพยากรที่มีอยู่ในภาษา C เพื่อวัดเวลาดำเนินการของกระบวนการหรือเธรดเฉพาะ

แม้ว่าเศษเสี้ยวของเวลาเหล่านี้ดูเหมือนไม่มีนัยสำคัญ แต่ก็มีกรณีสำคัญที่ความสามารถในการวัดและคำนวณเศษเสี้ยวของเวลาเหล่านี้เป็นปัจจัยสำคัญต่อความแม่นยำของระบบหรือกระบวนการเอง เราจะให้คำอธิบายทางทฤษฎีของวิธีการ นาฬิกา() ทำงาน อธิบายการทำงานของมันและหน่วยวัดที่ใช้เพื่อจุดประสงค์นี้







จากนั้น เราจะใช้ตัวอย่างที่ใช้งานได้จริงซึ่งรวมถึงส่วนย่อยของโค้ดและรูปภาพ เราจะดูว่าคุณสามารถใช้ฟังก์ชันนี้ในลักษณะที่ชัดเจนและมีรายละเอียดในการวัดเวลาวิกฤตในกระบวนการแบบเรียลไทม์ในระบบต่างๆ ได้อย่างไร



นาฬิกา () ไวยากรณ์ของฟังก์ชัน:



clock_t นาฬิกา ( เป็นโมฆะ )





คำอธิบายฟังก์ชั่น Clock() ในภาษา C

ฟังก์ชัน clock() จะว่างเปล่าเมื่อเรียกใช้ ไม่มีอาร์กิวเมนต์อินพุตและส่งกลับจำนวนขีดของนาฬิกาใน 'clock_t' ณ เวลาที่โทร

การนับพัลส์เริ่มต้นที่ศูนย์เมื่อแอปพลิเคชันเริ่มทำงานและดำเนินต่อไปจนกว่าผู้ใช้หรือระบบจะออกจากระบบ โดยจะรีเซ็ตเป็นศูนย์โดยการโอเวอร์โฟลว์ทุกๆ 72 นาทีโดยประมาณ ฟังก์ชัน clock() ไม่ได้แก้ไขหรือควบคุมตัวนับนี้ จะได้รับค่าเมื่อถูกเรียกเท่านั้น



ในการวัดเวลาการดำเนินการทั้งหมดของโปรแกรม เราจำเป็นต้องเรียก clock() เพียงครั้งเดียวเมื่อสิ้นสุดโปรแกรม ในการวัดเวลาที่ผ่านไปจากจุดหนึ่งของโปรแกรมไปยังอีกจุดหนึ่ง เราจำเป็นต้องเรียกใช้ฟังก์ชัน clock( ) และคำนวณข้อมูลทั้งสองที่ได้รับ

การคำนวณเพื่อกำหนดติ๊กที่ผ่านไประหว่างสองสายของ นาฬิกา() ฟังก์ชันทำได้โดยการลบผลลัพธ์ของการโทรครั้งแรกออกจากผลลัพธ์ของการโทรครั้งที่สอง ลองดูตัวอย่างเพื่อกำหนดระยะเวลาที่ผ่านไปจากจุดหนึ่งของโปรแกรมไปยังอีกจุดหนึ่ง

เดอะ นาฬิกา() ฟังก์ชันถูกกำหนดไว้ในฟังก์ชันส่วนหัวของ “time.h” เราต้องรวมไว้ในไฟล์โค้ด “.c” หรือ “.h” ดังที่แสดงในภาพต่อไปนี้ เพื่อใช้งาน

#รวม

วิธีรับสัญญาณนาฬิกาที่ผ่านไปจากจุดหนึ่งในโปรแกรมไปยังอีกจุดหนึ่งด้วยฟังก์ชัน Clock()

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





#รวม

#รวม



โมฆะหลัก ( )



{

clock_t ticks_ini, ticks_end;

ขีดสองครั้ง;

ticks_ini = นาฬิกา ( ) ; // การวัดเริ่มต้น

พิมพ์ฉ ( 'ขีดเริ่มวัด %ld \n ' ,ติ๊ก_นี่ ) ;

สำหรับ ( นานาชาติ = 0 ; ก < = 456450 ; ++ ) ;



ticks_end = นาฬิกา ( ) ; // วัดหยุด

ติ๊ก = ticks_end - ticks_ini;

พิมพ์ฉ ( 'ขีดสิ้นสุดการวัด %ld \n ' ,  ticks_end ) ;

พิมพ์ฉ ( 'เห็บผ่านไประหว่างหน่วยวัด %f \n ' , ขีด ) ;

กลับ ;

}



อันดับแรก เราสร้างตัวแปรสองตัว ticks_ini และ ticks_end ซึ่งเราเก็บผลลัพธ์ของ clock() ในการเรียกใช้สองครั้ง เราคำนวณเพื่อให้ได้จำนวนขีดที่ผ่านไปและจำนวนเต็ม เห็บ ซึ่งเราจัดเก็บผลลัพธ์สุดท้ายของเห็บที่ผ่านไปทั้งหมด

จากนั้นเราก็โทร นาฬิกา() ฟังก์ชั่นใน 'หลัก' ของเราและดึงนาฬิกาที่กำหนดไว้ก่อนหน้านี้ใน ticks_ini ตัวแปรที่ผ่านไปตั้งแต่เริ่มโปรแกรมจนถึงการเรียกใช้ฟังก์ชันนี้ครั้งแรก เราใช้ฟังก์ชัน printf() เพื่อแสดงค่านี้

หลังจากความล่าช้านี้ที่เราสร้างขึ้นด้วย สำหรับ เราเรียกว่า นาฬิกา() ฟังก์ชันเป็นครั้งที่สองเพื่อให้ได้จำนวนขีดจนถึงจุดนี้ เราส่งออกผลลัพธ์ไปยังหน้าจอด้วยฟังก์ชัน printf() จากนั้นเราจะได้รับผลลัพธ์ของจำนวนเห็บที่ผ่านไประหว่างการเรียกครั้งแรกและครั้งที่สอง นาฬิกา() โดยการลบ ticks_ini จาก ticks_end และเก็บผลลัพธ์ไว้ในตัวแปรขีดซึ่งเราส่งออกไปยังคอนโซลด้วย printf()

ด้วยวิธีนี้ เราจะได้เครื่องหมายถูกที่ผ่านไปจากจุดหนึ่งไปยังอีกจุดหนึ่งในรหัส

วิธีแปลงจำนวนขีดที่ได้รับเป็นวินาทีด้วยฟังก์ชัน Clock()

เมื่อเรามีจำนวนขีดที่ผ่านไปตั้งแต่เริ่มโปรแกรมหรือจากจุดหนึ่งไปยังอีกจุดหนึ่ง เราสามารถแปลงเวลานี้ที่แสดงเป็นขีดเป็นวินาทีได้โดยการหารผลลัพธ์ของตัวอย่างก่อนหน้าด้วยค่าคงที่ที่กำหนดไว้ล่วงหน้าเป็น time.h CLOCKS _PER_ วินาที ดังที่แสดงในตัวอย่างต่อไปนี้:

ติ๊ก = ( ticks_end - ticks_ini ) / ( สองเท่า ) CLOCKS_PER_SEC;

พิมพ์ฉ ( 'เห็บผ่านไปในไม่กี่วินาทีระหว่างการวัด %f \n ' , ขีด ) ;

บทสรุป

ในเรื่องนี้ คำแนะนำเกี่ยวกับลินุกซ์ บทความ เราได้แสดงวิธีการใช้งาน นาฬิกา() ฟังก์ชันทำการวัดเวลาเป็นขีดของนาฬิการะบบ เรายังอธิบายวิธีที่คุณสามารถวัดเวลาเหล่านี้ทั้งหมดหรือบางส่วนภายในแอปพลิเคชันที่รันอยู่ เราได้แสดงวิธีแปลงผลลัพธ์เป็นวินาที เราหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์ คุณสามารถค้นหาเคล็ดลับเพิ่มเติมเกี่ยวกับภาษา C ได้ในบทความของเรา ซึ่งคุณสามารถค้นหาได้โดยใช้เครื่องมือค้นหาของเว็บไซต์