我想测量一个程序在我的系统上打开所需的时间。我尝试过将该time
实用程序与 Atom 一起使用,但它甚至在 Atom 打开之前就在终端中打印了响应。两三秒后,Atom 在我的屏幕上打开。
$ time atom
real 0m0.021s
user 0m0.021s
sys 0m0.003s
有什么想法如何测量 GUI 打开并准备好用户输入所需的时间吗?
更新:
使用xdotool
如下所述的实用程序,我得到以下输出。
$ atom && time while true; do xdotool search --limit 1 --name "Project — Atom" >/dev/null && break; done
real 0m0.021s
user 0m0.009s
sys 0m0.005s
答案1
人们经常使用秒表来处理此类事情或修改应用程序以在“完成”时输出一些触发器是有原因的。
问题是什么是“开放”?窗口什么时候出现?应用程序初始化后?闲置后?还有别的事吗?
您可以使用类似的方法来检测窗口:
$ atom
$ time while true; do xdotool search --limit 1 --name atom >/dev/null && break; done
将 --name 字段中的“atom”替换为实际的窗口标题名称(它是正则表达式)。我不知道atom使用什么标题。请注意,这在扫描时可能会使用大量 CPU,并且在 Wayland 中不起作用。
您还可以另外使用屏幕捕获,例如import
从 imagemagick 中查找最终状态(从上面的 xdotool 获取要使用的 WID),但是 egads...如果启动时间真的很长,可能没问题。