Câu trả lời:
Thêm time
trước lệnh bạn muốn đo. Ví dụ : time ls
.
Đầu ra sẽ như sau:
real 0m0.606s
user 0m0.000s
sys 0m0.002s
Giải thích trên real
, user
và sys
(từ man time
):
real
: Đã qua thời gian thực (đồng hồ treo tường) được sử dụng bởi quy trình, tính bằng giây.user
: Tổng số giây CPU mà quá trình sử dụng trực tiếp (ở chế độ người dùng), tính bằng giây.sys
: Tổng số giây CPU được sử dụng bởi hệ thống thay mặt cho quá trình (ở chế độ kernel), tính bằng giây.sudo apt-get install time
nếu bạn đang sử dụng shell time
không phải là nội trang.
time
nội dung của Bash , nhưng man time
sẽ là về một tệp thực thi (như /usr/bin/time
, từ time
gói) và đầu ra của nó sẽ khác. Cũng trong Bash, bạn có thể chạy help time
để được giúp đỡ với nội dung.
Để đo delta theo từng dòng, hãy thử gnomon .
Nó là một tiện ích dòng lệnh, giống như ts của moreutils, để thêm thông tin dấu thời gian vào đầu ra tiêu chuẩn của một lệnh khác. Hữu ích cho các quy trình dài mà bạn muốn ghi lại lịch sử về những gì mất quá nhiều thời gian.
Đường ống bất cứ điều gì đến gnomon sẽ đưa ra dấu thời gian cho mỗi dòng, cho biết dòng đó là dòng cuối cùng trong bộ đệm bao lâu - nghĩa là mất bao lâu để dòng tiếp theo xuất hiện. Theo mặc định, gnomon sẽ hiển thị các giây trôi qua giữa mỗi dòng, nhưng đó là cấu hình.
sudo npm i gnomon -g
nếu bạn có npm
. Không chắc chắn nó hoạt động tốt như thế nào đối với các dòng "tiến bộ" bằng cách sử dụng '\ r' (nằm trên cùng một dòng): trong trường hợp đó tôi muốn nó tính tất cả là một dòng dài, không tách rời nhau.
Bạn có thể sử dụng time
:
time ls -R
date +"%T" && cp -r ./file /destination/folder/here && date +"%T"
Chạy lệnh này trong thiết bị đầu cuối sẽ cung cấp cho bạn tổng thời gian để xử lý tệp
find
lệnh sau - không có 2>/dev/null
chuyển hướng - cung cấp các Permission denied
thông báo đa dạng. Tuy nhiên, việc thêm 2>/dev/null
vào lệnh đó sẽ phá vỡ time
phần của lệnh đó. Sau đây cung cấp một thỏa hiệp tốt : START="$(date +"%s")" && find 2>/dev/null / -path /mnt -prune -o -name "*libname-server-2.a*" -print; END="$(date +"%s")"; TIME="$((END - START))"; printf 'find command took %s sec\n' "$TIME"
, đưa ra (ví dụ) /usr/lib/libname-server-2.a find command took 3 sec
làm đầu ra duy nhất.
time sudo find / -path /mnt -prune -o -name "*libname-server-2.a*" -print
(tức là, như sudo
) - tránh những Permission denied
cảnh báo đó.
Thỉnh thoảng tôi thấy mình cần một chiếc đồng hồ bấm giờ để tính thời gian cần thiết cho một hành động như khởi động ứng dụng của tôi, trong trường hợp đó, nhiều giải pháp ở đây không hữu ích.
Đối với điều này, tôi thích sử dụng sw .
wget -q -O - http://git.io/sinister | sh -s -- -u https://raw.githubusercontent.com/coryfklein/sw/master/sw
sw
- start a stopwatch from 0, save start time in ~/.sw
sw [-r|--resume]
- start a stopwatch from the last saved start time (or current time if no last saved start time exists)
- "-r" stands for --resume
time -v command
-v
cung cấp thêm thông tin
real
,user
vàsys
thời gian được rằng lệnh này lợi nhuận?