ท่ามกลางฟังก์ชั่นจับเวลา, time
, clock
getrusage
, clock_gettime
, gettimeofday
และtimespec_get
ผมต้องการที่จะเข้าใจอย่างชัดเจนว่าพวกเขาจะดำเนินการและสิ่งที่มีค่าที่พวกเขากลับมาเพื่อที่จะทราบซึ่งในสถานการณ์ที่ผมต้องใช้พวกเขา
แรกที่เราต้องฟังก์ชั่นประเภทกลับค่าผนังนาฬิกาเปรียบเทียบกับฟังก์ชั่นที่กลับมากระบวนการหรือหัวข้อค่า gettimeofday
ส่งคืนค่านาฬิกาแขวนclock_gettime
ส่งคืนค่านาฬิกาแขวนหรือค่ากระบวนการหรือเธรดขึ้นอยู่กับClock
พารามิเตอร์ที่ส่งผ่านไป getrusage
และclock
คืนค่ากระบวนการ
จากนั้นคำถามที่สองเกี่ยวกับการใช้งานฟังก์ชั่นเหล่านี้และเป็นผลให้ความถูกต้องของพวกเขา ฟังก์ชันเหล่านี้ใช้กลไกฮาร์ดแวร์หรือซอฟต์แวร์ใด
ดูเหมือนว่าgetrusage
จะใช้เฉพาะเคอร์เนลเห็บ (โดยทั่วไปจะมีความยาว 1 มิลลิวินาที) และด้วยเหตุนี้จึงไม่แม่นยำกว่า ms ถูกต้องหรือไม่ จากนั้นgetimeofday
ฟังก์ชั่นการใช้งานดูเหมือนว่าจะถูกต้องมากที่สุดฮาร์ดแวร์พื้นฐานที่มีอยู่ ผลที่ตามมาคือความถูกต้องแม่นยำคือไมโครวินาที (ไม่สามารถมากไปกว่าเพราะ API) บนฮาร์ดแวร์ล่าสุด สิ่งที่เกี่ยวกับclock
หน้าพูดคนเกี่ยวกับ "ประมาณ" มันหมายความว่าอะไร? สิ่งที่เกี่ยวกับclock_gettime
API อยู่ในระดับนาโนวินาทีหมายความว่าสามารถแม่นยำได้หรือไม่ถ้าฮาร์ดแวร์พื้นฐานอนุญาต? แล้วเรื่อง monotonicity ล่ะ?
มีฟังก์ชั่นอื่น ๆ อีกหรือไม่?
clock_gettime
ดังนั้นการใช้งานที่gettimeofday()
หลากหลายกว่าclock_gettime()