เหตุใดเวลาทุบตีจึงแม่นยำมากขึ้นตามเวลา GNU


12

คำสั่ง buitin bash timeให้ความแม่นยำในการประมวลผลเป็นมิลลิวินาทีและ GNU time(ปกติ / usr / bin / เวลา) ให้ความแม่นยำเป็นมิลลิวินาที times(2)syscall ให้ครั้งในนาฬิกาและ 100 นาฬิกา = 1 วินาที (ปกติ) เพื่อความแม่นยำเป็นเหมือน timeGNU ดังนั้นคำถามคือสิ่งที่timeใช้ทุบตีเพื่อให้แม่นยำยิ่งขึ้น?


อืม ... พวกเขาทั้งสองให้มิลลิวินาทีในระบบของฉัน ... (FC16)
nico

แปลก. อะไรที่ทำให้คุณพิมพ์ ("% d \ n", sysconf (_SC_CLK_TCK)); ควรเป็น 100 ตามที่ระบุไว้ข้างต้น บางคนมีข้อสังเกตคล้ายกับของฉัน: dirac.org/linux/timeแต่ก็ยังไม่มีคำอธิบาย
Łukasz Sowa

ใช่แล้วมันจะให้ 100 ...
nico

ถ้าอย่างนั้นฉันก็ไม่รู้ว่าทำไม เวลาของ GNU ควรใช้ times syscall ซึ่งใช้ sysconf (_SC_CLK_TCK) เพื่อแปลงเป็นวินาที
Łukasz Sowa

FWIW เมื่อคุณพูดว่า "ทุบตีtime" ผมถือว่าคุณ BSD เฉลี่ยเป็นความหมายว่าtime getrusage
เดนนิส

คำตอบ:


16

หลังจากที่บางรหัสไม่ยอมใครง่ายๆทุบตีตรวจสอบผมพบว่าทุบตีtimeใช้getrusage()และ GNU ใช้time มีความแม่นยำมากกว่าเนื่องจากความละเอียดระดับไมโครวินาทีtimes()getrusage()

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.