![通过终端命令启动应用程序的计时启动时间](https://linux22.com/image/69267/%E9%80%9A%E8%BF%87%E7%BB%88%E7%AB%AF%E5%91%BD%E4%BB%A4%E5%90%AF%E5%8A%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E8%AE%A1%E6%97%B6%E5%90%AF%E5%8A%A8%E6%97%B6%E9%97%B4.png)
我想看看某个应用程序需要多长时间才能完全启动。
有没有办法使用某些命令通过终端启动应用程序?
答案1
“全面启动”没有标准定义。如果你提出了一个定义,可能有也可能没有方法来检测它。
如果您对“完全启动”的定义是“等到应用程序空闲,等待用户输入”,那么您可以跟踪其系统调用并查看开始读取用户输入需要多长时间。
strace -o myapp.strace -tt myapp
当应用程序完成启动后,查看跟踪文件myapp.strace
并找到应用程序发出等待用户输入的行。例如,在下面的示例中,select
我显示的调用是应用程序等待用户输入以执行其他操作的点;下一行对应于应用程序发生的事情。
01:07:53.975957 execve("/usr/bin/xterm", ["xterm"], [/* 83 vars */]) = 0
…
01:07:54.319288 select(5, [3 4], [], NULL, NULL) = 1 (in [3])
01:07:57.129481 recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\10\4\344\1\343q\257
有些应用程序不会闲置,而是永远保持轮询。然后你必须用自己的判断来决定应用程序何时“完全启动”。
某些应用程序可能会在加载某些文件或执行某些预定义的启动操作时开始响应用户输入。 “完全开始”没有正式的定义,因此您可以选择什么才算是“完全开始”。
如果将“完全启动”算作“显示 GUI 窗口”,则可以使用xtool等待,它启动应用程序并等待直到显示窗口,然后退出。请注意,如果其他应用程序碰巧同时显示新窗口,它可能会返回误报,因为窗口不以完全可靠的方式与应用程序关联。
time xtoolwait xterm
答案2
“应用程序”是什么意思?一个图形用户界面应用程序?哪个应用程序? “启动”是什么意思?
所有程序几乎都会立即启动 - 延迟在于接收输出。