SlideShare a Scribd company logo
1 of 7
LINUX SYSTEM PROGRAMMING
20103366
이동우
성능측정(원래소스)
1번째 시도 2번째 시도 3번째 시도 4번째 시도 5번째 시도 평균
시간 96.509757 101.61613
3
99.586436 100.46976
9
113.97167
3
102.43075
3
File 1
Lines
2096962 2096962 2096962 2096962 2096962 2096962
File 2
Lines
2097147 2097147 2097147 2097147 2097147 2097147
Fout
lines
4194109 4194109 4194109 4194109 4194109 4194109
과제 성능측정(수정된코드)
1번째 시도 2번째 시
도
3번째 시
도
4번째 시
도
5번째 시
도
평균
시간 55.864585 66.269756 65.854067 64.321649 62.059332 62.873877
8
File 1
Lines
2096962 2096962 2096962 2096962 2096962 2096962
File 2
Lines
2097147 2097147 2097147 2097147 2097147 2097147
Fout
lines
4194109 4194109 4194109 4194109 4194109 4194109
성능 향상 요인
• 원래 있던 소스보다 40초 가량 줄어든 것을 확인 할 수 있다.
• 원래 소스와는 달리 수정된 소스에서는 버퍼사이즈(변수 : BUFF_SIZE 100)
으로 주었다. 버퍼사이즈를 default인 1024보다 적게 주어서 성능향상에
도움이 되었다.
• 배열포인터를 이용하였다. fgetc로 한글자씩 읽은 것을 저장해주고 마지
막에 return 값을 fputs로 저장해주었다.
• gcc 컴파일러는 –O3로 최적화 해주는 옵션이 있는데 gcc –O3 –o merge
merge.c 명령어로 컴파일을 해주었다.
시도했으나, 성능 향상에 실패한 것들
• Open을 이용해 파일을 열어주고 처리해주려 했으나 버퍼를 자르는 부분
에서 특정 Line의 중간에서 끊기는 부분이 있어 성능 향상이 되지 않았던
것 같다. 계속 어떻게 하면 정해준 버퍼 사이즈 내에서 라인의 끝부분까
지 가져오는 것을 연구 하였으나 끝내 해내지 못했다.
• 여러 string reverse 함수를 검색하고 시도해보았지만 눈에 띄게 성능향상
을 찾지는 못하였다.
• Mmap 부분은 open을 하다가 시간을 다 써서 시도해보지 못했다.
수정된 소스 스크린샷
원래 소스 스크린 샷

More Related Content

Viewers also liked (11)

Ag Hall of Fame Live Auction Items
Ag Hall of Fame Live Auction ItemsAg Hall of Fame Live Auction Items
Ag Hall of Fame Live Auction Items
 
The Power of Influencer Marketing
The Power of Influencer MarketingThe Power of Influencer Marketing
The Power of Influencer Marketing
 
Modelos de Desarrollo de sotfware
Modelos de Desarrollo de sotfwareModelos de Desarrollo de sotfware
Modelos de Desarrollo de sotfware
 
El aula virttual 1
El aula virttual 1El aula virttual 1
El aula virttual 1
 
Endorsements
EndorsementsEndorsements
Endorsements
 
P Stevens Leadership Profile in Vertiflite
P Stevens Leadership Profile in VertifliteP Stevens Leadership Profile in Vertiflite
P Stevens Leadership Profile in Vertiflite
 
Multiscale-Modeling_Luo_Tomar
Multiscale-Modeling_Luo_TomarMultiscale-Modeling_Luo_Tomar
Multiscale-Modeling_Luo_Tomar
 
Hw1 2 20113288_소현수
Hw1 2 20113288_소현수Hw1 2 20113288_소현수
Hw1 2 20113288_소현수
 
Merge version 2
Merge version 2Merge version 2
Merge version 2
 
іноземна мова
іноземна моваіноземна мова
іноземна мова
 
Make fast file merge program using c (stage 2)
Make fast file merge program using c (stage 2)Make fast file merge program using c (stage 2)
Make fast file merge program using c (stage 2)
 

Linux

  • 2. 성능측정(원래소스) 1번째 시도 2번째 시도 3번째 시도 4번째 시도 5번째 시도 평균 시간 96.509757 101.61613 3 99.586436 100.46976 9 113.97167 3 102.43075 3 File 1 Lines 2096962 2096962 2096962 2096962 2096962 2096962 File 2 Lines 2097147 2097147 2097147 2097147 2097147 2097147 Fout lines 4194109 4194109 4194109 4194109 4194109 4194109
  • 3. 과제 성능측정(수정된코드) 1번째 시도 2번째 시 도 3번째 시 도 4번째 시 도 5번째 시 도 평균 시간 55.864585 66.269756 65.854067 64.321649 62.059332 62.873877 8 File 1 Lines 2096962 2096962 2096962 2096962 2096962 2096962 File 2 Lines 2097147 2097147 2097147 2097147 2097147 2097147 Fout lines 4194109 4194109 4194109 4194109 4194109 4194109
  • 4. 성능 향상 요인 • 원래 있던 소스보다 40초 가량 줄어든 것을 확인 할 수 있다. • 원래 소스와는 달리 수정된 소스에서는 버퍼사이즈(변수 : BUFF_SIZE 100) 으로 주었다. 버퍼사이즈를 default인 1024보다 적게 주어서 성능향상에 도움이 되었다. • 배열포인터를 이용하였다. fgetc로 한글자씩 읽은 것을 저장해주고 마지 막에 return 값을 fputs로 저장해주었다. • gcc 컴파일러는 –O3로 최적화 해주는 옵션이 있는데 gcc –O3 –o merge merge.c 명령어로 컴파일을 해주었다.
  • 5. 시도했으나, 성능 향상에 실패한 것들 • Open을 이용해 파일을 열어주고 처리해주려 했으나 버퍼를 자르는 부분 에서 특정 Line의 중간에서 끊기는 부분이 있어 성능 향상이 되지 않았던 것 같다. 계속 어떻게 하면 정해준 버퍼 사이즈 내에서 라인의 끝부분까 지 가져오는 것을 연구 하였으나 끝내 해내지 못했다. • 여러 string reverse 함수를 검색하고 시도해보았지만 눈에 띄게 성능향상 을 찾지는 못하였다. • Mmap 부분은 open을 하다가 시간을 다 써서 시도해보지 못했다.