유타
대표칭호 없음
Yuta_BOT 98fe88f0ea7149eab88ad13ea3509175
어느 분이 질문하신거 보고 궁금해졌는데
함수는 단순히 구문의 단축과 편의성이라는 장점밖에 없고 최적화와는 상관이 없으려나요?
함수를 불러오는 과정에서 오히려 속도 면에서는 떨어질 수도 있을 것도 같기도 하구요..
레벨 및 포인트 | Lv. 1 (5P) |
---|---|
게시글 | 8개 |
댓글 | 12개 |
리액션 | 20점 |
어느 분이 질문하신거 보고 궁금해졌는데
함수는 단순히 구문의 단축과 편의성이라는 장점밖에 없고 최적화와는 상관이 없으려나요?
함수를 불러오는 과정에서 오히려 속도 면에서는 떨어질 수도 있을 것도 같기도 하구요..
lanthanide
2021.08.19f(x) = x+1, f(2)+f(3) 이라고 쓰나 (2+1)+(3+1)이라고 쓰나 별반 다르지 않습니다. 컴퓨터도 사람이랑 똑같아요. f(x)가 x+1이란 걸 안다 해서 (2+1)+(3+1)보다 빨리 계산할 수 있는 건 아니잖아요.
스크립터브혼
2021.08.19긴 코드를 함축하여 코드의 재사용성을 높이고 복잡한 로직의 가독성을 높여주는 것이 최적화의 절반입니다.
어쨋든 그 코드를 읽고, 고치고, 실행하는것은 사람이 합니다. 사람이 보기 편해야하죠.
나머지 절만은 구조적으로 쓸대없는 메모리 낭비를 막는것이에요.
이것은 기술적 한계가 있습니다. 프로그래밍 레벨에서는 직접적으로 메모리를 다루기 때문에 메모리 누수에 대해서 복잡하고 체계적으로 다루어 지지만, 스크립트에서는 그런게 없습니다. 스스로 코드를 오용하는 경우에 누수가 발생하죠.
당연하게도 구조가 복잡해 질 수 록 어디서 메모리 낭비가 발생하는지 찾기 어렵습니다.
그걸 해결하는데 도움을 주는게 함수가 될 수 있습니다.
반복문으로 단순한 연산을 여러번 했을때 그냥 했을 때와 함수를 호출하여했을때의 차이는 약 1.5배 정도 차이가 납니다.
절대적 수치로 예를들자면, 한번 계산한 속도는 0.000000010 초 정도이고, 함수를 호출했을때는 0.000000015초 정도 입니다.
0.000000005초가 아쉬워서 함수를 못쓰시겠다면 그러셔도 됩니다. 선택은 사용자가 하는 것이죠.