감압 프로그램을 빠르게 벤치마킹 할 생각이있었습니다. 예를 들어 gz의 경우 다음 명령을 실행합니다.
timeout 10 zcat foo.gz | wc -c
압축 해제 기가 10 초 안에 추출 할 수있는 데이터의 양을 측정합니다.
유일한 문제는 작동하지 않는다는 것입니다 .zcat이 종료되면 wc도 종료되므로 바이트 수를 얻지 못하고 Terminated
메시지 만 있습니다.
따라서 질문은 : 어떻게 든 신호를 차단하여 wc에서 카운트를 얻는 방법이 있습니까? 또는 wc 대신 대안 신호를 사용하여 용어 신호를 얻을 때도 결과를 인쇄하는 방법이 있습니까?
물론 대안이 있습니다.
임시 파일에 쓰기 : 이것
timeout 10 zcat foo.gz > /dev/shm/x ; du -sb /dev/shm/x ; rm -r /dev/shm/x
의 문제점은 많은 메모리를 사용하고 성능에 약간의 불이익이있을 수 있다는 것입니다.대신 ulimit 사용 :
ulimit -t 10; zcat foo.gz | wc -c
작동하지만 CPU 시간 만 측정하므로 I / O로 인한 속도 저하 (예 : 압축이 나 빠지고 디스크에서 더 많은 바이트를 읽어야 함)가 측정되지 않습니다.더 작은 테스트 파일 만들기 :
물론 이것은 효과가 있으며 가장 좋은 해결책이 될 수 있습니다. 그러나 이로 인해 많은 임시 파일이 생성됩니다.
6
"파이프 및 화장실 끊기"를 읽으면서 처음에는 배관에 문제가 있다고 생각했습니다!
—
dr01