LaTeX 파일의 단어 수를 세고 다음 명령을 시각적으로 사용했습니다.
$ cat *tex | detex | wc -w
그러다가 나는 그 사람을 즉시 알아차렸습니다.쓸모없는 사용cat
, 다음 코드를 사용하여 작업을 다시 실행했습니다.
$ detex *tex | wc -w
추가 과정을 안한게 자랑스럽고 를 사용하지 않아서 확인해 보고 싶었는데 cat
이 버전을 보고 깜짝 놀랐습니다.그리고 cat
실제로 10배 더 빠릅니다:
$ time cat *tex | detex | wc -w
5000
real 0m0.013s
user 0m0.005s
sys 0m0.007s
$ time detex *tex | wc -w
5000
real 0m0.144s
user 0m0.124s
sys 0m0.014s
이렇게 속도 차이가 나는 이유는 무엇일까요? cat
디스크에서 파일을 읽는 것보다 디스크에서 파일을 읽는 것이 훨씬 더 빠르나요 detex
?
벤치마킹을 위해 5개의 샘플 "LaTeX" 파일을 생성했습니다.
$ for i in {1..5}; do shuf -n 1000 /usr/share/dict/words > "file${i}.tex"; done
답변1
예비 결과는 일관성이 없는 것으로 보입니다.
detex
최신 버전이 설치됨스스로 만든:
$ detex -v
OpenDetex version 2.8.9
https://github.com/pkubowicz/opendetex
예제 LaTeX 파일을 얻으세요:
$ curl https://raw.githubusercontent.com/latex3/latex3/main/articles/2011-current-state.tex > file.tex
파일 복사본을 100개 만들었습니다.
$ for i in {1..100}; do cp file.tex "file${i}.tex"; done
이 cat
버전을 5번 실행하세요:
$ for i in {1..5}; do time cat *tex | detex | wc -w; done
78174
real 0m0.024s
user 0m0.025s
sys 0m0.012s
78174
real 0m0.021s
user 0m0.023s
sys 0m0.009s
78174
real 0m0.019s
user 0m0.020s
sys 0m0.008s
78174
real 0m0.019s
user 0m0.019s
sys 0m0.008s
78174
real 0m0.017s
user 0m0.018s
sys 0m0.008s
비 cat
버전을 5번 실행하세요:
$ for i in {1..5}; do time detex *tex | wc -w; done
78174
real 0m0.027s
user 0m0.023s
sys 0m0.009s
78174
real 0m0.024s
user 0m0.021s
sys 0m0.007s
78174
real 0m0.021s
user 0m0.020s
sys 0m0.005s
78174
real 0m0.019s
user 0m0.017s
sys 0m0.005s
78174
real 0m0.018s
user 0m0.016s
sys 0m0.005s