작성자 | lilly1987 | ||
---|---|---|---|
작성일 | 2018-10-09 16:15:32 KST | 조회 | 4,212 |
제목 |
쓸데없는 성능 측정 - 최대공약수, 재귀함수
|
이번엔 최대 공약수를 구하는 함수 입니다.
그리고 이분야에서 공부 한번 해봤으면 들어봤을 유클리드 호재법..
https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95
뭐 일단은 써봐야죠
크게 두가지 방식으로 구현할건데
재귀 함수 방법이랑 while문 방식입니다.
c++로 한번 측정 해봐야하긴 하는데 귀찬아서 스타2 트리거로 구현.[음?]
1번은 재귀 방식
2번은 변수 반복 방식
코드 라인수부터 차이 나네요.
그럼 테스트 스크립트 작성
두개가 동시에 실행되면 시간이 서로 영향 미쳐서 순차 실행
값은 잘 나오는거 확인 했기에 디버그 메세지 제외
반복횟수를 100000회로 측정
lib1B30C79D_gt_Euclidean_set 트리거가 - 재귀 방식
lib1B30C79D_gt_Euclidean_set2 트리거가 - 반복 방식
재귀 방식 369 밀리초
반복 방식 396 밀리초
횟수가 적어서 그런가
아니면 초기화 직후에 해서 그런가
지도 초기화후 시간 지연 5초좀 넣고
1000000회로 실행
그리고
실행 순서를 바꿔서 한번더 실행
재귀 방식 3778 밀리초
반복 방식 4175 밀리초
음 함수 재귀방식이 빠르네요
변수 대입 코드가 몇번 들어갔다고 저정도 성능차이가 나버리네요.
성능 최적화 할려면 역시 코드 실행 횟수를 줄이는게 답입니다.
팁: 에디터 설정을 창모드로 하시면 스샷처럼 디버그창 이용 가능.
비활성된 트리거라도 디버그창에서 강제 실행 가능
출처: http://lilly1987.tistory.com/801 [릴리의 지극히 개인적인 블로그]
© PlayXP Inc. All Rights Reserved.