กลับไปหน้าบทความ

อ่าน 3 นาที

เวลา (ยูนิก)

ใน ทางคอมพิวเตอร์ คำ สั่ง time `time` คือคำสั่งใน ระบบปฏิบัติการ Unix และ ระบบปฏิบัติการ ที่คล้าย Unix ใช้เพื่อกำหนดระยะเวลาในการทำงานของ คำสั่ง ใด คำสั่ง หนึ่ง

เวลา (ยูนิก)

เวลา
นักพัฒนานักพัฒนาซอฟต์แวร์โอเพนซอร์สและเชิงพาณิชย์หลายราย
ระบบปฏิบัติการยูนิก , คล้ายยูนิก , อินเฟอร์โน
แพลตฟอร์มข้ามแพลตฟอร์ม
พิมพ์สั่งการ

ในทางคอมพิวเตอร์ คำ สั่งtime`time` คือคำสั่งใน ระบบปฏิบัติการ Unixและ ระบบปฏิบัติการ ที่คล้าย Unixใช้เพื่อกำหนดระยะเวลาในการทำงานของ คำสั่ง ใด คำสั่ง หนึ่ง

ภาพรวม

time(1)สามารถใช้งานได้ทั้งในรูปแบบโปรแกรมอิสระ (เช่นGNU time) หรือในรูป แบบฟังก์ชันภายใน ของเชลล์ในกรณีส่วนใหญ่ (เช่น ในsh , bash , tcshหรือในzsh )

เวลาของผู้ใช้เทียบกับเวลาของระบบ

เวลาการใช้งาน CPU ทั้งหมด คือผลรวมของเวลาที่ CPU ใช้ไปในการดำเนินการบางอย่างให้กับโปรแกรม และเวลาที่ CPU ใช้ไปในการเรียกใช้ระบบ (system call)ของเคอร์เนลในนามของโปรแกรม เมื่อโปรแกรมวนลูปผ่านอาร์เรย์ เวลาการใช้งาน CPU ของผู้ใช้จะเพิ่มขึ้น ในทางกลับกัน เมื่อโปรแกรมเรียกใช้ระบบเช่นexecหรือforkเวลาการใช้งาน CPU ของระบบจะเพิ่มขึ้น

เวลาจริงเทียบกับเวลา CPU

ในบริบทนี้ คำว่า "เวลาจริง" หมายถึงเวลาที่ผ่านไปตามนาฬิกาจริง เช่น การใช้เครื่องจับเวลา เวลา CPU รวม (เวลาผู้ใช้ + เวลาของระบบ) อาจมากกว่าหรือน้อยกว่าค่าดังกล่าว เนื่องจากโปรแกรมอาจใช้เวลาบางส่วนในการรอและไม่ได้ทำงานเลย (ไม่ว่าจะอยู่ในโหมดผู้ใช้หรือโหมดระบบ) เวลาจริงจึงอาจมากกว่าเวลา CPU รวม และเนื่องจากโปรแกรมอาจสร้างกระบวนการลูก (child process) ซึ่งเวลา CPU ของกระบวนการลูก (ทั้งผู้ใช้และระบบ) จะถูกบวกเข้ากับค่าที่รายงานโดยtimeคำสั่ง แต่ในระบบมัลติคอร์ งานเหล่านี้จะทำงานแบบขนาน เวลา CPU รวมจึงอาจมากกว่าเวลาจริง

การใช้งาน

ในการใช้คำสั่งนี้ เพียงแค่ใส่คำว่า นำหน้าคำสั่งใดๆ ก็ได้timeเช่น:

เวลาls 

เมื่อคำสั่งทำงานเสร็จสมบูรณ์ ระบบtimeจะรายงานระยะเวลาที่ใช้ในการประมวลผลlsคำสั่ง โดยแสดงเป็นเวลา CPU ของผู้ใช้ เวลา CPU ของระบบ และเวลาจริง รูปแบบผลลัพธ์จะแตกต่างกันไปในแต่ละเวอร์ชันของคำสั่ง และบางเวอร์ชันอาจแสดงสถิติเพิ่มเติม ดังตัวอย่างนี้:

$ เวลาโฮสต์wikipedia.org wikipedia.org มีที่อยู่ 103.102.166.224 อีเมลของ wikipedia.org จัดการโดย 50 mx2001.wikimedia.org อีเมลของ wikipedia.org จัดการโดย 10 mx1001.wikimedia.org โฮสต์ wikipedia.org 0.04 วินาที ผู้ใช้ 0.02 วินาที ระบบ 7% ซีพียู 0.780 ทั้งหมด$

นาฬิกาจับเวลาแบบง่าย( Ctrl+ dเพื่อหยุด):

เวลาอ่าน$เวลาจริง 0m9.760s เวลา ผู้ใช้ 0m0.000s เวลาของระบบ 0m0.000s $

โปรแกรม time (ไม่ว่าจะทำงานเป็นโปรแกรมเดี่ยว หรือเมื่อ Bash shell ทำงานในโหมด POSIX และเรียกใช้time เป็น ) จะแสดงผลข้อผิดพลาดไปยังเอาต์พุตมาตรฐาน time -p

เวลา -p

สคริปต์แบบพกพาควรใช้time -pโหมดนี้ ซึ่งใช้รูปแบบเอาต์พุตที่แตกต่างกัน แต่สอดคล้องกับการใช้งานต่างๆ:

$ time -p sha256sum /bin/ls 12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc /bin/ls real 0.00 user 0.00 sys 0.00 $

การนำไปใช้

ขึ้นอยู่กับเชลล์ คำสั่ง timeโดยค่าเริ่มต้นจะถูกมองว่าเป็นคำหลักของเชลล์ คำสั่งในตัวหรือไฟล์ปฏิบัติการไบนารี นอกจากนี้ยังสามารถบังคับให้ใช้ไบนารีได้โดยการอ้างอิงไฟล์โดยตรง เช่น/usr/bin/time anyCommmand หากต้องการตรวจสอบค่าเริ่มต้น ให้ออกคำสั่ง: . [ 1 ]type time

เวลา GNU

โปรแกรม GNU time เวอร์ชันปัจจุบัน แสดงข้อมูลมากกว่าแค่เวลาโดยค่าเริ่มต้น:

$ /usr/bin/time sha256sum /bin/ls 12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc /bin/ls 0.00user 0.00system 0:00.00elapsed 100%CPU (0avgtext+0avgdata 2156maxresident)k 0inputs+0outputs (0major+96minor)pagefaults 0swaps $

รูปแบบการแสดงผลของGNU time สามารถปรับเปลี่ยนได้โดยใช้TIMEตัวแปรสภาพแวดล้อม และสามารถแสดงข้อมูลอื่นนอกเหนือจากเวลาในการประมวลผล (เช่น การใช้งานหน่วยความจำ) พฤติกรรมนี้ไม่มีในโปรแกรม จับเวลาที่สอดคล้องกับ มาตรฐาน POSIX ทั่วไป หรือเมื่อประมวลผลในโหมดtime -p.

เวอร์ชันไบนารีจะส่งเอาต์พุตไปยังstderrแทนที่จะเป็นstdoutแต่สามารถเปลี่ยนแปลงได้โดยใช้แฟล็ก หรือ-o filename--output filename

เอกสารในช่วงเวลา นั้น สามารถเข้าถึงได้โดยทั่วไปโดยใช้. man 1 time

วิธีการใช้งาน

จากซอร์สโค้ดของการใช้งาน GNU ของtimeข้อมูลส่วนใหญ่ที่แสดงโดย นั้นtimeได้มาจากwait3ระบบเรียกใช้ (system call) ในระบบที่ไม่มีฟังก์ชันwait3เรียกใช้ที่ส่งคืนข้อมูลสถานะtimesจะใช้ระบบเรียกใช้ แทน

ทุบตี

ในBashซึ่ง เป็นเชลล์ Unix ยอดนิยม timeมีคีย์เวิร์ดพิเศษที่สามารถวางไว้หน้าไปป์ไลน์ (หรือคำสั่งเดียว) เพื่อวัดเวลาของไปป์ไลน์ทั้งหมด ไม่ใช่แค่คำสั่งแรก และใช้รูปแบบเริ่มต้นที่แตกต่างกัน โดยจะเว้นบรรทัดว่างไว้ก่อนรายงานเวลา:

$ time seq 10000000 | wc -l 10000000เวลาจริง 0m0.078 วินาที เวลา ผู้ใช้ 0m0.116 วินาทีเวลาของระบบ 0m0.029 วินาที$

เวลาที่แสดงเป็นเวลาที่ใช้โดยทั้งสองส่วนseqและwc -lนำมารวมกัน สามารถปรับรูปแบบของผลลัพธ์ได้โดยใช้TIMEFORMATตัวแปร

เมื่อเวลาถูกมองว่าเป็นคำหลักพิเศษ ระบบจะเพิกเฉยต่อการเปลี่ยนเส้นทางของไปป์ไลน์แม้ว่าจะดำเนินการในลักษณะนั้นก็ตามวิธีแก้ปัญหาคือการล้อมกลุ่มคำสั่งด้วยวงเล็บปีกกา เช่น: [ 2 ] หรืออีกวิธีหนึ่งคือตั้งค่าเชลล์ bash ให้ทำงานใน "โหมด POSIX" ซึ่งสามารถบังคับให้เชลล์เพิกเฉยต่อการใช้งานคำหลักที่สงวนไว้หากมีแฟล็กเสริมตามหลังคำสั่งเวลา[ 3 ]time -p{ time anyCommand; } 2> timing.Output

สามารถเข้าถึงเอกสารเกี่ยวกับเวลา ได้โดยใช้ หรือภายใน bash เองโดยใช้ man 1 bashhelp time

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Time_(Unix)&oldid=1336331262 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เวลา (ยูนิก)

ใน ทางคอมพิวเตอร์ คำ สั่ง time `time` คือคำสั่งใน ระบบปฏิบัติการ Unix และ ระบบปฏิบัติการ ที่คล้าย Unix ใช้เพื่อกำหนดระยะเวลาในการทำงานของ คำสั่ง ใด คำสั่ง หนึ่ง

ภาพรวม

time(1) สามารถใช้งานได้ทั้งในรูปแบบโปรแกรมอิสระ (เช่น GNU time) หรือในรูป แบบฟังก์ชันภายใน ของเชลล์ ในกรณีส่วนใหญ่ (เช่น ใน sh , bash , tcsh หรือใน zsh )

เวลาของผู้ใช้เทียบกับเวลาของระบบ

เวลาการใช้งาน CPU ทั้งหมด คือผลรวมของเวลาที่ CPU ใช้ไปในการดำเนินการบางอย่างให้กับโปรแกรม และเวลาที่ CPU ใช้ไปในการ เรียกใช้ระบบ (system call) ของ เคอร์เนล ในนามของโปรแกรม เมื่อโปรแกรมวนลูปผ่านอาร์เรย์ เวลาการใช้งาน CPU ของผู้ใช้จะเพิ่มขึ้น ในทางกลับกัน...

เวลาจริงเทียบกับเวลา CPU

ในบริบทนี้ คำว่า "เวลาจริง" หมายถึง เวลาที่ผ่านไปตามนาฬิกา จริง เช่น การใช้เครื่องจับเวลา เวลา CPU รวม (เวลาผู้ใช้ + เวลาของระบบ) อาจมากกว่าหรือน้อยกว่าค่าดังกล่าว เนื่องจากโปรแกรมอาจใช้เวลาบางส่วนในการรอและไม่ได้ทำงานเลย...