lsb_release가 몇 바이트를 인쇄하는 프로그램보다 느린 것처럼 보이는 이유는 무엇입니까?

lsb_release가 몇 바이트를 인쇄하는 프로그램보다 느린 것처럼 보이는 이유는 무엇입니까?

모든 Linux 시스템에서 lsb_release가 릴리스에 대한 일부 정보를 인쇄하는 데 시간이 더 오래 걸리는 이유를 알고 싶습니다.
누구든지 이 사실을 알려줄 수 있습니까? 제발.

답변1

몇 바이트를 인쇄하는 것은 어려운 부분이 아닙니다. 어려운 부분은 어떤 바이트를 인쇄해야 하는지 찾는 것입니다. 이를 위해서는 lsb_release많은 시스템 파일을 분석해야 합니다. 시스템 호출을 추적하면 I/O에 소요되는 시간을 확인할 수 있습니다.

strace -f -tt -T -o lsb_release.strace lsb_release

내 컴퓨터에서는 명령을 실행하는 데 약 1/3의 시간이 소요됩니다.

dpkg-query -f '${Version} ${Provides}\n' -W lsb-core lsb-cxx lsb-graphics lsb-desktop lsb-languages lsb-multimedia lsb-printing lsb-security

설치된 패키지의 데이터베이스를 구문 분석합니다. 다른 중요한 I/O 소비자는 없습니다.

이것은 Python 스크립트이므로 다음과 같이 할 수도 있습니다.Python 분석기 사용시간을 어디에 소비하는지 이해하십시오.

python -m cProfile

소비자가 소비하는 가장 큰 시간은 스크립트 초기화(상당수의 라이브러리를 사용함) 및 하위 프로세스 호출과 관련이 있다는 사실이 나에게는 별로 이해가 되지 않습니다 dpkg.

관련 정보