如何诊断制表符完成缓慢?

如何诊断制表符完成缓慢?

有些用户在按 Tab 键完成文件路径时,机器需要几秒钟才能完成。他们正在使用 bash shell。

如何诊断到底是什么导致该用户的选项卡完成挂起?

答案1

在 bash 中,运行echo $$以查看 shell 的进程 ID,然后准备按Tabbash。打开另一个终端并运行,strace -p1234其中1234是bash的进程ID。strace将打印 bash 执行的系统调用的跟踪。即使您不完全了解发生了什么,这通常也足以了解什么需要时间 - 通常是发出网络请求,或者正在访问大量文件。弄清楚要更改哪些设置以避免速度缓慢可能很容易,也可能不容易。

根据系统的安全设置,可能不允许您运行strace不相关的进程。如果不是,则strace作为 bash 的父级运行:

strace -tt -T -o bash.trace bash

执行完成尝试,然后退出 bash 并查看跟踪文件bash.trace。每行开头都有一个时间戳,指示系统调用何时开始,行尾尖括号中的数字是系统调用所花费的时间。

strace是一个Linux命令。如果您运行的不是 Linux,请在您的系统上查找相应的命令 —  dtrace, truss, trace, ...

相关内容