当前位置: 首页>>技术问答>>正文


我如何测量终端进程的执行时间?

, ,

问题描述

我试图测量通过命令行调用的进程的执行时间(即,我想知道进程完成需要多长时间)。是否有任何命令可以添加到调用将实现此目的的进程的命令中?

最佳解决方案

在要测量的命令之前添加time

输出结果如下所示:

real    0m0.606s
user    0m0.000s
sys     0m0.002s

realusersys(来自man time)的说明:

  • real:进程使用的实际时间(挂钟)时间,以秒为单位。

  • user:进程直接使用(在用户模式下)的CPU-seconds总数,以秒为单位。

  • sys:系统代表进程(在内核模式下)使用的CPU-seconds的总数,以秒为单位。

次佳解决方案

对于line-by-line增量测量,请尝试gnonom

It is a command line utility, a bit like moreutils’s ts, to prepend timestamp information to the standard output of another command. Useful for long-running processes where you’d like a historical record of what’s taking so long.

Piping anything to gnomon will prepend a timestamp to each line, indicating how long that line was the last line in the buffer–that is, how long it took the next line to appear. By default, gnomon will display the seconds elapsed between each line, but that is configurable.

command-line,performance,ubuntu

第三种解决方案

您可以使用time

time ls -R

第四种方案

date +"%T" && cp -r ./file  /destination/folder/here && date +"%T"

在终端中运行此命令将为您提供处理文件的总时间

第五种方案

偶尔我发现自己需要一个秒表来计算像我的应用程序启动这样的操作需要多长时间,在这种情况下,许多解决方案都没有用。

为此我喜欢使用sw

command-line,performance,ubuntu

Install

wget -q -O - http://git.io/sinister | sh -s -- -u https://raw.githubusercontent.com/coryfklein/sw/master/sw

Usage

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/531.html,未经允许,请勿转载。