SlideShare a Scribd company logo
1 of 18
Merge 성능향상
20123186 전자공학부 김준석
목차
1. 기존의 merge 성능 분석
2. 새로운 merge의 구현
3. 추가적인 성능 향상 방안
4. 결론
1. 기존 merge의 성능 분석
 5회시도 평균 완료시간: 124.954 sec
1. 기존 merge의 성능 분석
 Fout 파일
1. 기존 merge의 성능 분석
 Perf report를 통한 분석
 fputc() 함수가 가장 오버헤드가 높다.
2. 새로운 merge 구현
Object:
1. 평균 완료시간인 124.954 sec 보다 빠른 시간 내에 수행하게 한다.
-> fputc() 함수를 fread() 함수로 바꾼다.
2. 출력파일에 입력파일에서 읽어온 한 줄을 거꾸로 출력 한다.
-> strrev()함수 구현.
2. 새로운 merge 구현
 fputc() -> fread()
 기존 함수인 readline_and_out()을 사용.
 fread():한 라인 크기의 버퍼에 입력 받고 출력파일에 출력한다.
 Q1: 한 라인의 길이가 입력버퍼보다 큰 경우?
 -> 문제발생 입력파일의 한 줄의 최대길이 정보를 알아야 한다.
 Q2: 한 라인을 입력 받은 후 추가로 읽어온 데이터는?
 -> fseek() 함수를 통해 파일의 커서 포인터를 마지막으로 읽은 한
라인의 끝의 다음으로 옮긴다. (버퍼낭비)
 -> 예비 버퍼를 쓸 수 도 있다.
2. 새로운 merge 구현
 Strrev()  Strrev_v2()
2. 새로운 merge 구현
 Fread()로 바꾼 merge (strrev() 기능추가)의 평균 완료시간: 69.441 sec
 -> 55% 성능 개선
2. 새로운 merge 구현
 Fout.
2. 새로운 merge 구현
 새로운 merge의 성능 분석
 Strrev() 함수가 가장 오버헤드가 높음.
3. 추가적인 성능향상 방향
 1. Strrev() 성능향상
 기존의 알고리즘:
 1. 파일에서 버퍼로 100바이트를 가져온다. Fraed()
 2. 버퍼에서 라인피드를 찾는다. strchr()
 3. 버퍼안에서 tmp를 이용해 위치를 바꾼다. strrev()
 4. 출력파일에 한 라인의 캐릭터 수만큼 출력한다. fwrite()
 스택을 이용한 알고리즘:
 1. 파일에서 버퍼로 100 바이트를 가져온다.
 2. 버퍼에서 스택으로 라인피드가 나올때 까지 한 캐릭터씩 넣는다.
 3. 스택에서 뽑아서 다시 버퍼에 넣는다. (라인피드 추가)
 4. 출력파일에 한 라인의 캐릭터 수만큼 출력한다.
 기대효과:
 기존 알고리즘의 2번 3번을
합쳐 성능이 좋아질 것이다.
3. 추가적인 성능향상 방향
 2. fread() 호출 줄이기
 기존의 알고리즘의 문제점:
 한 라인의 최대 길이를 알아야 한다.
 각 라인을 병합 할 때마다 fread(), fwrite()를 호출한다.
 -> 버퍼의 크기를 크게 하면 어떨까?
 -> Smallmerge();
3. 추가적인 성능향상 방향
 Smallmerge()
3. 추가적인 성능향상 방향
 버퍼사이즈는 어떻게?
 N개 섹터의 크기 = 블록 = 가상 메모리의 페이지크기 = 512Byte
3. 추가적인 성능향상 방향
 3. register keyword
 Register 키워드로 선언된 변수는 CPU의 레지스터에 등록되어 메모리에서 참조하지 않고 연산하여 속도가 빠르다.
 CPU의 상황에 따라 무시될 수 있음.
 성능향상 (X)
 이미 자주사용 할 것 같은 변수는 컴파일러가 레지스터 등록을 함.
 라즈베리파이가 바쁨.
4. 결론
 어렵다…..
감사합니다.

More Related Content

What's hot

[Algorithm] Recursive(재귀)
[Algorithm] Recursive(재귀)[Algorithm] Recursive(재귀)
[Algorithm] Recursive(재귀)Bill Kim
 
[Swift] Protocol (2/2)
[Swift] Protocol (2/2)[Swift] Protocol (2/2)
[Swift] Protocol (2/2)Bill Kim
 
Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Yong Joon Moon
 
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기 Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기 SEUNGWOO LEE
 
04장 고급변수 사용
04장 고급변수 사용04장 고급변수 사용
04장 고급변수 사용유석 남
 
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)주영 송
 
Hw1 2 20113288_소현수
Hw1 2 20113288_소현수Hw1 2 20113288_소현수
Hw1 2 20113288_소현수hyunsoo so
 
10장 문자열클래스와파일클래스
10장 문자열클래스와파일클래스10장 문자열클래스와파일클래스
10장 문자열클래스와파일클래스웅식 전
 
PostgreSql vaccum
PostgreSql vaccumPostgreSql vaccum
PostgreSql vaccum승범 현
 
thread_seminar
thread_seminarthread_seminar
thread_seminarU.g. Yong
 

What's hot (16)

Linux+정리
Linux+정리Linux+정리
Linux+정리
 
[Algorithm] Recursive(재귀)
[Algorithm] Recursive(재귀)[Algorithm] Recursive(재귀)
[Algorithm] Recursive(재귀)
 
[Swift] Protocol (2/2)
[Swift] Protocol (2/2)[Swift] Protocol (2/2)
[Swift] Protocol (2/2)
 
Merge revesed
Merge revesedMerge revesed
Merge revesed
 
Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706
 
Thread
ThreadThread
Thread
 
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기 Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
 
04장 고급변수 사용
04장 고급변수 사용04장 고급변수 사용
04장 고급변수 사용
 
skku cp2 w4
skku cp2 w4skku cp2 w4
skku cp2 w4
 
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
 
Hw1 2 20113288_소현수
Hw1 2 20113288_소현수Hw1 2 20113288_소현수
Hw1 2 20113288_소현수
 
프로젝트 #1 최종
프로젝트 #1 최종프로젝트 #1 최종
프로젝트 #1 최종
 
10장 문자열클래스와파일클래스
10장 문자열클래스와파일클래스10장 문자열클래스와파일클래스
10장 문자열클래스와파일클래스
 
PostgreSql vaccum
PostgreSql vaccumPostgreSql vaccum
PostgreSql vaccum
 
thread_seminar
thread_seminarthread_seminar
thread_seminar
 
Gcd ppt
Gcd pptGcd ppt
Gcd ppt
 

Viewers also liked

고급시스템프로그래밍 Project#1 20123222_서기원
고급시스템프로그래밍 Project#1 20123222_서기원고급시스템프로그래밍 Project#1 20123222_서기원
고급시스템프로그래밍 Project#1 20123222_서기원giwon seo
 
Merge.c 성능개선보고서
Merge.c 성능개선보고서Merge.c 성능개선보고서
Merge.c 성능개선보고서Jung Eun Kim
 
Generalidades acerca de las TICs y la formación docente
Generalidades acerca de las TICs y la formación docenteGeneralidades acerca de las TICs y la formación docente
Generalidades acerca de las TICs y la formación docenteyumirka del orbe marte
 
Imagenes la linda princesa mariana
Imagenes   la linda princesa marianaImagenes   la linda princesa mariana
Imagenes la linda princesa marianaMarisol Gomez
 
Marlon_Anico_Jaurigue_CV_Oct_2016
Marlon_Anico_Jaurigue_CV_Oct_2016Marlon_Anico_Jaurigue_CV_Oct_2016
Marlon_Anico_Jaurigue_CV_Oct_2016Marlon Jaurigue
 
Marlon_Anico_Jaurigue_CV_Oct_2016
Marlon_Anico_Jaurigue_CV_Oct_2016Marlon_Anico_Jaurigue_CV_Oct_2016
Marlon_Anico_Jaurigue_CV_Oct_2016Marlon Jaurigue
 
Imagenes la linda princesa mariana
Imagenes   la linda princesa marianaImagenes   la linda princesa mariana
Imagenes la linda princesa marianaMarisol Gomez
 
Delitos informaticos oswaldo rodriguez
Delitos informaticos oswaldo rodriguezDelitos informaticos oswaldo rodriguez
Delitos informaticos oswaldo rodriguezoswaldo rodriguez
 
File reverse & merge
File reverse & mergeFile reverse & merge
File reverse & merge한울 채
 
Teoria de liderazgo carmen ajila
Teoria de liderazgo carmen ajilaTeoria de liderazgo carmen ajila
Teoria de liderazgo carmen ajilasusana26ajila
 
อิศรญาณภาษิต
อิศรญาณภาษิตอิศรญาณภาษิต
อิศรญาณภาษิตKrowler Tarawat
 
File merge report2
File merge report2File merge report2
File merge report2Kwonhong Min
 

Viewers also liked (18)

고급시스템프로그래밍 Project#1 20123222_서기원
고급시스템프로그래밍 Project#1 20123222_서기원고급시스템프로그래밍 Project#1 20123222_서기원
고급시스템프로그래밍 Project#1 20123222_서기원
 
Merge
MergeMerge
Merge
 
Linux
Linux Linux
Linux
 
Merge.c 성능개선보고서
Merge.c 성능개선보고서Merge.c 성능개선보고서
Merge.c 성능개선보고서
 
Generalidades acerca de las TICs y la formación docente
Generalidades acerca de las TICs y la formación docenteGeneralidades acerca de las TICs y la formación docente
Generalidades acerca de las TICs y la formación docente
 
Imagenes la linda princesa mariana
Imagenes   la linda princesa marianaImagenes   la linda princesa mariana
Imagenes la linda princesa mariana
 
Proyecto webb
Proyecto webbProyecto webb
Proyecto webb
 
Marlon_Anico_Jaurigue_CV_Oct_2016
Marlon_Anico_Jaurigue_CV_Oct_2016Marlon_Anico_Jaurigue_CV_Oct_2016
Marlon_Anico_Jaurigue_CV_Oct_2016
 
The british college prospectus 2016-2017
The british college prospectus 2016-2017The british college prospectus 2016-2017
The british college prospectus 2016-2017
 
Marlon_Anico_Jaurigue_CV_Oct_2016
Marlon_Anico_Jaurigue_CV_Oct_2016Marlon_Anico_Jaurigue_CV_Oct_2016
Marlon_Anico_Jaurigue_CV_Oct_2016
 
Imagenes la linda princesa mariana
Imagenes   la linda princesa marianaImagenes   la linda princesa mariana
Imagenes la linda princesa mariana
 
Delitos informaticos oswaldo rodriguez
Delitos informaticos oswaldo rodriguezDelitos informaticos oswaldo rodriguez
Delitos informaticos oswaldo rodriguez
 
File reverse & merge
File reverse & mergeFile reverse & merge
File reverse & merge
 
Delitos informaticos
Delitos informaticosDelitos informaticos
Delitos informaticos
 
Teoria de liderazgo carmen ajila
Teoria de liderazgo carmen ajilaTeoria de liderazgo carmen ajila
Teoria de liderazgo carmen ajila
 
อิศรญาณภาษิต
อิศรญาณภาษิตอิศรญาณภาษิต
อิศรญาณภาษิต
 
File merge report2
File merge report2File merge report2
File merge report2
 
FileMerge
FileMergeFileMerge
FileMerge
 

Similar to Adv sys prog_20123186_report1

Optimizing merge program
Optimizing merge program Optimizing merge program
Optimizing merge program CHANG-HYUN LEE
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍CHANG-HYUN LEE
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍CHANG-HYUN LEE
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍CHANG-HYUN LEE
 
Linux programming study
Linux programming studyLinux programming study
Linux programming studyYunseok Lee
 
Merge version 2
Merge version 2Merge version 2
Merge version 2한울 채
 
파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리Booseol Shin
 
병렬 프로그래밍
병렬 프로그래밍병렬 프로그래밍
병렬 프로그래밍준혁 이
 
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이GangSeok Lee
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)SeongHyun Ahn
 
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작DACON AI 데이콘
 
Linux 강의자료 ed10
Linux 강의자료 ed10Linux 강의자료 ed10
Linux 강의자료 ed10hungrok
 

Similar to Adv sys prog_20123186_report1 (20)

Optimizing merge program
Optimizing merge program Optimizing merge program
Optimizing merge program
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍
 
고급시스템프로그래밍
고급시스템프로그래밍고급시스템프로그래밍
고급시스템프로그래밍
 
Linux programming study
Linux programming studyLinux programming study
Linux programming study
 
Merge version 2
Merge version 2Merge version 2
Merge version 2
 
파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리
 
Stage2
Stage2Stage2
Stage2
 
병렬 프로그래밍
병렬 프로그래밍병렬 프로그래밍
병렬 프로그래밍
 
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이
[2012 CodeEngn Conference 07] nesk - Defcon 20th : 본선 CTF 문제풀이
 
Java stream v0.1
Java stream v0.1Java stream v0.1
Java stream v0.1
 
Java stream v0.1
Java stream v0.1Java stream v0.1
Java stream v0.1
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)
 
04 프로세스
04 프로세스04 프로세스
04 프로세스
 
강의자료 2
강의자료 2강의자료 2
강의자료 2
 
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
 
6 function
6 function6 function
6 function
 
Mylab
MylabMylab
Mylab
 
Nodejs_chapter3
Nodejs_chapter3Nodejs_chapter3
Nodejs_chapter3
 
Linux 강의자료 ed10
Linux 강의자료 ed10Linux 강의자료 ed10
Linux 강의자료 ed10
 

Recently uploaded

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 

Recently uploaded (6)

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 

Adv sys prog_20123186_report1

  • 2. 목차 1. 기존의 merge 성능 분석 2. 새로운 merge의 구현 3. 추가적인 성능 향상 방안 4. 결론
  • 3. 1. 기존 merge의 성능 분석  5회시도 평균 완료시간: 124.954 sec
  • 4. 1. 기존 merge의 성능 분석  Fout 파일
  • 5. 1. 기존 merge의 성능 분석  Perf report를 통한 분석  fputc() 함수가 가장 오버헤드가 높다.
  • 6. 2. 새로운 merge 구현 Object: 1. 평균 완료시간인 124.954 sec 보다 빠른 시간 내에 수행하게 한다. -> fputc() 함수를 fread() 함수로 바꾼다. 2. 출력파일에 입력파일에서 읽어온 한 줄을 거꾸로 출력 한다. -> strrev()함수 구현.
  • 7. 2. 새로운 merge 구현  fputc() -> fread()  기존 함수인 readline_and_out()을 사용.  fread():한 라인 크기의 버퍼에 입력 받고 출력파일에 출력한다.  Q1: 한 라인의 길이가 입력버퍼보다 큰 경우?  -> 문제발생 입력파일의 한 줄의 최대길이 정보를 알아야 한다.  Q2: 한 라인을 입력 받은 후 추가로 읽어온 데이터는?  -> fseek() 함수를 통해 파일의 커서 포인터를 마지막으로 읽은 한 라인의 끝의 다음으로 옮긴다. (버퍼낭비)  -> 예비 버퍼를 쓸 수 도 있다.
  • 8. 2. 새로운 merge 구현  Strrev()  Strrev_v2()
  • 9. 2. 새로운 merge 구현  Fread()로 바꾼 merge (strrev() 기능추가)의 평균 완료시간: 69.441 sec  -> 55% 성능 개선
  • 10. 2. 새로운 merge 구현  Fout.
  • 11. 2. 새로운 merge 구현  새로운 merge의 성능 분석  Strrev() 함수가 가장 오버헤드가 높음.
  • 12. 3. 추가적인 성능향상 방향  1. Strrev() 성능향상  기존의 알고리즘:  1. 파일에서 버퍼로 100바이트를 가져온다. Fraed()  2. 버퍼에서 라인피드를 찾는다. strchr()  3. 버퍼안에서 tmp를 이용해 위치를 바꾼다. strrev()  4. 출력파일에 한 라인의 캐릭터 수만큼 출력한다. fwrite()  스택을 이용한 알고리즘:  1. 파일에서 버퍼로 100 바이트를 가져온다.  2. 버퍼에서 스택으로 라인피드가 나올때 까지 한 캐릭터씩 넣는다.  3. 스택에서 뽑아서 다시 버퍼에 넣는다. (라인피드 추가)  4. 출력파일에 한 라인의 캐릭터 수만큼 출력한다.  기대효과:  기존 알고리즘의 2번 3번을 합쳐 성능이 좋아질 것이다.
  • 13. 3. 추가적인 성능향상 방향  2. fread() 호출 줄이기  기존의 알고리즘의 문제점:  한 라인의 최대 길이를 알아야 한다.  각 라인을 병합 할 때마다 fread(), fwrite()를 호출한다.  -> 버퍼의 크기를 크게 하면 어떨까?  -> Smallmerge();
  • 14. 3. 추가적인 성능향상 방향  Smallmerge()
  • 15. 3. 추가적인 성능향상 방향  버퍼사이즈는 어떻게?  N개 섹터의 크기 = 블록 = 가상 메모리의 페이지크기 = 512Byte
  • 16. 3. 추가적인 성능향상 방향  3. register keyword  Register 키워드로 선언된 변수는 CPU의 레지스터에 등록되어 메모리에서 참조하지 않고 연산하여 속도가 빠르다.  CPU의 상황에 따라 무시될 수 있음.  성능향상 (X)  이미 자주사용 할 것 같은 변수는 컴파일러가 레지스터 등록을 함.  라즈베리파이가 바쁨.