Skip to content
Snippets Groups Projects
Commit eeaf8a33 authored by KangHyun Kim's avatar KangHyun Kim
Browse files

add report11.md

parent 8f03a36d
Branches
No related tags found
No related merge requests found
......@@ -2,3 +2,28 @@
#### 배운 것
##### Call by reference
프로그램은 메모리에 적재되어 실행되는데, 프로그램의 요소들이 메모리의 각 영역에 구분되어 할당된후 메모리에 적재된다. 예를 들어 로컬 변수들은 메모리의 스택 영역에 적재되며 코드의 경우 메모리의 코드 영역에 적재된다.
C언어에서는 call by reference와 call by value만이 존재한다.
##### gprof
gprof에는 여러가지 옵션들이 존재한다.
* -b : 프로파일링 후에 출력되는 많은 메시지들이 간결하게 정리되어 출력된다.
* -z : 호출되지 않은 함수와 코드들의 내용들까지 한꺼번에 보여준다. 코드 최적화를 하는데 사용될 것으로 예상된다. 함수의 포인터로 사용해도 함수 사용 카운트가 증가한다.
* -A : 소스코드에 주석을 달아서보여준다. 함수가 몇번 call 되어있는지 주석을 달아준다.
* --graph : call graph를 누적해서 보여준다.
제온 CPU에서는 곱셈과 덧셈의 차이가 거의 없으며 심지어 곱셈의 성능이 더 좋은 경우도 있다.
우리의 실습코드 test3.c에서는 연산에서 많은 오버플로우가 일어나기 때문에 성능이 매우 낮아진다. 오버플로우의 경우 error이기 때문에 오버플로우가 발생하는 경우 성능이 매우 낮다.
-m32 -m64를 통해 32비트와 64비트 컴파일을 설정할 수 있다. 하드웨어 특성에 따라 32비트 연산 혹은 64비트 연산이 다른 연산 방식보다 빠른 경우가 생길 수 있다. 따라서 cc 컴파일 시에 위와 같은 옵션을 설정해주어 연산 속도를 비교하는 과정을 시도하는 것이 중요하다.
##### Final Project 관련
0xff와 비트 AND 연산(&)을 사용하는 경우 LSB 8비트만을 남긴다. 따라서 마지막 8비트의 값만을 확인하고 싶으면 0xff를 해당 값과 AND(&)하여 값을 추출해낼 수 있다.
곱셈보다는 나눗셈이 4배 정도 느리다. 따라서 나눗셈을 진행할 때는 곱셈으로써 다루는 것이 효율적이다. 따라서 역수를 상수로써 정의한 다음 곱셈으로써 사용하는 것이 효율적으로 매우 유리하다.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment