쉘 초기화의 모든 단계를 추적하고 시간을 측정하세요

쉘 초기화의 모든 단계를 추적하고 시간을 측정하세요

다음 명령은 완전한 단계 추적을 제공합니다.

zsh -i -c -x exit > trace 2>&1

그것도 포착되길 바라며,각 특정 단계 옆에(예: 첫 번째 열) 단계에 걸린 시간입니다.

Zsh는 이를 수행하는 쉬운 방법을 제공합니까?

답변1

매우 최근 버전을 사용하면 쉽게 가까운 정보를 얻을 수 있습니다. 즉, 각 단계의 타임스탬프입니다. ~에서선적 서류 비치-x:

출력 앞에는 $PS4 값이 다음에 설명된 형식으로 표시됩니다.급속한 확장.

당신은 넣을 수 있습니다타임스탬프추적 접두사에. %.zsh ≥5.6에 대해 나노초 정확도를 제공하며 5.0.6에서 5.5.x 사이의 마이크로초 정확도만 제공합니다. 이전 버전에는 가 없었고 %D두 번째 정밀도만 얻을 수 있었던 것 같습니다.

PS4='+%D{%s.%9.}:%N:%i>' zsh -x …

그런 다음 추적을 사후 처리하여 연속 타임스탬프 간의 차이를 계산할 수 있습니다.

<trace awk -F: '{printf "+%.09f", $1 - t; t=$1; $1=""; print}'

관련 정보