有没有办法查看当我启动一个新 shell 时每件事花费了多少时间(例如一些正在运行的函数等)。
是否可以?
我唯一能想到的帮助就是做这样的事情:
~
? time fish -i -c exit
________________________________________________________
Executed in 142.29 millis fish external
usr time 76.19 millis 68.00 micros 76.12 millis
sys time 61.52 millis 469.00 micros 61.05 millis
Run Code Online (Sandbox Code Playgroud)
然后试图取出东西并再次测量......虽然并不理想。
fah*_*aho 10
Fish 具有内置的分析功能。
从fish 3.2开始,它必须--profile只分析您给出的命令并--profile-startup分析启动时间,然后才能--profile将两者一起分析。
使用喜欢
fish --profile-startup /tmp/fish.profile -i -c exit
Run Code Online (Sandbox Code Playgroud)
这将创建一个名为“/tmp/fish.profile”的文件,看起来像
Time Sum Command
415 2505 > builtin source /usr/share/fish/config.fish
15 15 -> set -g IFS \n\ \t
6 6 -> set -qg __fish_added_user_paths
4 4 -> set -g __fish_added_user_paths
1 4 -> if not set -q __fish_initialized...
3 3 --> not set -q __fish_initialized
3 3 -> function __fish_default_command_not_found_handler...
4 72 -> if status --is-interactive...
Run Code Online (Sandbox Code Playgroud)
第一列是命令本身花费的时间(以微秒为单位,所以 1000000 是 1s),第二列是它和它的所有部分(包括函数调用和命令替换)花费的时间,第三列是命令加上一个指示这是调用堆栈的深处。
查看最大的时间投资sort -nk2 /tmp/fish.profile很有用 - 这按第二列排序,因此它将最后显示大票项目(即最接近下一个提示)。
请注意,这也显示了 fish 的内部启动 -set -g IFS例如,这是一个 fish 内部的东西,但它往往很快,所以它不会突出。
| 归档时间: |
|
| 查看次数: |
304 次 |
| 最近记录: |