두 수의 덧셈 출력 프로그램
함수를 사용하는 경우와 그렇지 않을 경우의 성능을 비교 분석하시오| (A) int main (void) { int num1, num2, sum; num1 = 5; num2 = 10; sum = num1 + num2; printf("sum: %d\n", sum); } | (B) int add(int a, int b) { return (a+b); } int main (void) { int num1, num2, sum; num1 = 5; num2 = 10; sum = add (num1, num2); printf("sum: %d\n", sum); } |
여기서 중간에 시간 측정 함수넣고 차이 구해서 시간차이를 구했고
배울때 B쪽이 더 느리다고 배웠음... 함수를 호출할때 마다 호출하고 참조하는데 시간이 더걸리니깐요
그렇다면 B를 사용하는 이유가 뭘까요
단순히 가독성이나 재사용성 상속성같은거 때문인가요 시간이 더걸려도 이게 더 중요한가요?
아니면 저 더하기 구문을 몇백번 몇천번으로 늘리면 B쪽이 더 효율이 좋아서 시간이 단축되나요?
.. 성능생각하지 않는 내입장에서도. 더하기만을 위해 그러진 않는다. 메서드는 기능적으로 분리가 가능하잖아. 솔까레알 메인메서드에 올인으로 쳐박는 코딩을 안하는 이유는 성능문제가 아니라 기능문제. 그리고, 메모리 관리는 어떻게 할건데. 라고 생각함 [from Lumia 920]
인라인 함수 짱짱맨
당연히 위 코드는 예제일뿐이고 코드가 엄청나게 길어지거나 큰 프로젝트나 하는 프로그램들에서 기능안따지고 성능만으로 볼때 메인에 전부 넣는게 성능쪽에서는 우위인지 아닌지 물어보는거에요 앞뒤 생각안하고 죄다 메인에 넣으면 B쪽보다 빠른가 빠르지 않는가
codesafer // 문맥교환시간 검색 해보았는데요 그럼 메모리 효율성 면에서 B가 더 좋으니깐 호출횟수가 기하급수적으로 늘어나면 B쪽이 더 좋은 효율이 될 수도 있겠네요?
아무리 생각해도 메모리 효율이 좋아진다 뿐이고 속도는 계속해서 느린데... 함수를 계속 호출하는거니깐요...
그럼 여러가지 기능성 말고는 속도 측면에서는 안좋다는거네요...