Как диагностировать медленное заполнение вкладки?

Существует определенный пользователь, который, когда они нажимают клавишу вкладки, чтобы завершить путь к файлу, занимает несколько секунд, чтобы машина выполнила завершение. Они используют оболочку bash.

Как я могу диагностировать, что именно вызывает завершение вкладок для этого пользователя?

  • Найти абсолютный путь из скрипта
  • Bash надежный способ тестирования файла существует
  • Как напечатать дефисы, если переменная пуста?
  • Преобразуйте аргумент в верхний регистр, чтобы передать его как переменную
  • Команды, вставленные в bash, не записанные в истории
  • Передача кликов по ссылкам в rxvt скрипту
  • Удаленный запуск через SSH
  • Восстановить выполнение по умолчанию
  • Как перенести часть шаблона соответствия вывода в файл, оставив остальную часть в stdout?
  • вывод grep в rm
  • клавиши со стрелками не работают с сеансом telnet терминала (termnetd)
  • BASH: как передать аргумент по умолчанию, если никакие аргументы после первого не прошли
  • One Solution collect form web for “Как диагностировать медленное заполнение вкладки?”

    В bash запустите echo $$ чтобы увидеть идентификатор процесса оболочки, затем приготовьтесь нажать Tab в bash. Откройте другой терминал и запустите strace -p1234 где 1234 – это идентификатор процесса bash. strace будет печатать следы системных вызовов, которые выполняет bash. Даже если вы не понимаете точно, что происходит, этого достаточно часто, чтобы понять, что занимает время – обычно это делает сетевой запрос, или он обращается к очень большому количеству файлов. Выяснение того, какие настройки для изменения, чтобы избежать медленности, может быть или не быть легким.

    В зависимости от настроек безопасности вашей системы вам не разрешается запускать strace в несвязанный процесс. Если вы этого не сделаете, запустите strace в качестве родителя bash:

     strace -tt -T -o bash.trace bash 

    Сделайте попытку завершения, затем выйдите из bash и посмотрите файл трассировки bash.trace . Каждая строка имеет отметку времени в начале, указывающую, когда начался системный вызов, а число в угловых скобках в конце строки – это время, затраченное на системный вызов.

    strace – это команда Linux. Если вы не используете Linux, найдите соответствующую команду в своей системе – dtrace , dtrace , trace , …

    Linux и Unix - лучшая ОС в мире.