我正在使用 unix time 命令来记录运行 java 程序的时间。
我的程序开始运行时做的第一件事就是要求用户输入文件路径。
输入此命令并点击返回所花费的时间是否已计入此命令返回的任何时间统计信息?我的 time 命令的输出格式如下:
.#u #.#s #:#.# #.#% #+#k #+#io #pf+#w
其中 # 是一个整数
谢谢
我正在使用 unix time 命令来记录运行 java 程序的时间。
我的程序开始运行时做的第一件事就是要求用户输入文件路径。
输入此命令并点击返回所花费的时间是否已计入此命令返回的任何时间统计信息?我的 time 命令的输出格式如下:
其中 # 是一个整数
谢谢
是的,提供输入所花费的时间是实时的一部分(输出中的第三个条目)。
简单演示:
$ time(sleep 5 ; echo hi | read)
real 0m5.005s
user 0m0.000s
sys 0m0.004s
这里echo hi
将打印hi
在标准输出上并read
读取它。在写入和读取发生之前,我添加了 5 秒的延迟。我已经为整个事情计时了。
正如所见,实际时间约为 5 秒,这意味着它考虑了read
命令读取输入所花费的时间。
简单地说,用户时间是 CPU 运行我们程序中的指令(如循环、条件)所花费的时间。
而sys时间是CPU执行系统调用所花费的时间。在我们的示例中,我们看到 4 毫秒的 sys 时间,因为该命令涉及许多 sys 调用,例如read
等write
。