More Related Content
Similar to 고급 시스템 프로그래밍 (20)
고급 시스템 프로그래밍
- 2. 목표
Gen.c 로 두개의 파일을 만든다.
파일을 line-by-line으로 reverse하여 출력한다.
성능을 좋게 만든다.
성능=(최종버전 실행시간)/(Template실행시간)
Rasberry PI에서 성능을 비교하여 측정한다.
- 3. Reverse
파일을 읽어서 reverse하여 거꾸로 출력하도록 한다.
1. 새로운 배열 str[]을 만들어 읽은 문자를 저장한다.
2. Count를 늘려가며 line의 끝까지 읽는다.
3. 읽은 파일을 뒤에서부터 출력한다.
- 4. Reverse
int ch, count,k,q = 0; //변수 선언
char str[200] = { 0 }; //배열을 만든다.
do {
if ((ch = fgetc(fin)) == EOF) {
…
}
str[k] = ch; //파일에서 읽은 문자를 배열에 저장
k++;
count++;
} while (ch != 0x0a);
for (q = k; q >= 0; q--) //끝에서부터 출력한다.
{
fputc(str[q], fout);
}
- 8. 성능 측정
기존 merge 성능
$ ./merge /tmp/file_0001 /tmp/file_0002 f_out
Processing time = 106.19846 sec
- 10. 성능 측정
fopen ,fputc, fgetc 를 open, read, write 로 수정하
려고 하였지만, 계속 되는 error 발생으로 성능 향상
에 실패하였다.