Retro Game & PC/매뉴얼 팁 작업

Apple2 베이식 프로그램 속도 - Lookup Table, 컴파일

smores 2024. 9. 7. 13:21

예전에 했던 실험. 기본적으로 다음의 코드로 그래프를 그린다.

 

10 HGR2
20 DR=3.1415/180
30 FOR R=5 TO 330 STEP 10
40 FOR T=0 TO 360 STEP 10
50 X=R*COS(T*DR)*.3
60 Y=R*SIN(R*DR)*.3
70 Z=R*SIN(T*DR)*.3
80 XP=X+(COS(15*DR)*Z)
90 YP=Y+(SIN(15*DR)*Z)
92 XP=140+XP
95 YP=60-YP
100 HPLOT XP,YP
110 NEXT:NEXT
120 HPLOT 0,0 TO 10,0 TO 10,10 TO 0,10 TO 0,0
130 INPUT A$
140 TEXT

 

 

위의 코드를 그대로 실행하면 대략 4분 3초 정도 걸린다. 
이를 Einstein 컴파일러로 컴파일후 돌리면 3분 10초 정도로 약간 시간 단축.

 

 
코드의 삼각함수 실수 연산이 시간이 많이 걸릴것 같아서 lookup table 을 만들어서 실행하면 확실한 시간 단축이 있었다. 

graph3d-v2.bas
0.00MB

 

애플소프트 베이식으로 그대로 실행하면 처음 데이터 초기화하는데 시간이 걸리지만 그걸 포함해서도 2분 5초 정도로 첫번째 코드의 Einstein 컴파일러의 컴파일 버전 보다도 빠르다.

 

이걸 다시 Einstein 컴파일러로 컴파일해서 돌리면 무려...  44초 컷!!

 

그런데 Beagle Compiler 로 3중 루프 100만회 돌리는 테스트의 경우 Einstein 컴파일러보다 비글이 월등히 빠른 속도를 보여주었다. 그래서 기대를 가지고 테스트해보았는데 이 경우는 Einstein 과 거의 비슷한 결과...