CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): hl1sul (생선전)
날 짜 (Date): 2009년 08월 07일 (금) 오전 07시 27분 02초
제 목(Title): Re: 쉘 스크립트 질문


루프에서 컨디션 체크할 때 ${#inline[@]}가 매번 새로이 계산될텐데요. 
O(n^2)가 되는 것 아닌지? bash internal을 모르니 확실히는 모르겠군요.

bash에서 read line하는 것도 별로 성능이 좋지 않습니다. 여러번 grep을
한다면 어차피 그 파일은 두번째 부터는 page cache에서 나와서 빠를텐데요.
첫번째도 sequential read면 read-ahead 때문에 빨리 읽을테고요. 

dd로 해당 파일을 읽어서 /dev/null로 보내보세요. cold할 때 한 번 읽고, 그 
다음 반복하면서 타이밍이 어떻게 되나 보시면 과연 input speed가 문제인지 
아실 수 있겠죠?

page cache를 모두 drop하시려면 echo 3 > /proc/vm/drop_caches 하시면 
됩니다. 그러면 모든게 cold해지겠죠. L2는 다른 큰 데이타 파일 한 번 
스캔하면 대부분 날아갈겁니다.

주의: drop cache할 때 옛날 커널 (e.g. RHEL4)은 재수없으면  돌아가실 수도 
있습니다. ^^ 적어도 2.6.18이후에는 문제 없었습니다.

주의: drop cache는 리눅스에서만 해당되는 것입니다.

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.