스크립트 성능
스크립트 성능 (Script Performance)
AutoHotkey 스크립트의 성능을 최대화하는 방법과, 성능을 위해 처리되는 내부 최적화에 대해 설명하는 문서예요.
출처: 문서
본문
스크립트의 성격에 따라 성능에 영향을 줄 수 있는 함수들은 다음과 같아요: SendMode, SetKeyDelay, SetMouseDelay, SetWinDelay, SetControlDelay, 그리고 SetDefaultMouseSpeed.
내장 성능 기능 (Built-in Performance Features)
각 스크립트는 로드되는 동안 반(半)컴파일되고 문법 검사를 받아요. 일부 오류를 일찍 발견해 주는 것에 더해, 이것은 런타임 성능도 크게 향상시켜요.
최적화 과정(반컴파일)의 기술적 세부 사항 중 일부는 다음과 같아요:
- Loops(루프), blocks(블록), IFs, ELSEs 및 기타 제어 흐름(control flow) 문장에는 스크립트 안의 관련 점프 지점(jump-point)들의 메모리 주소가 부여돼요.
- 각 문장 이름은 점프 테이블(jump table)의 주소로 대체돼요.
- 각 expression(표현식)은 토큰화되어 중위(infix)에서 후위(postfix) 표기로 변환돼요.
- variable(변수)이나 function(함수)에 대한 각 참조는 dynamic(동적)이 아닌 한 메모리 주소로 해석돼요.
- 표현식의 리터럴 정수는 이진 정수로 대체돼요.
- 각 Goto의 목적지는 변수가 아닌 한 메모리 주소로 해석돼요.
그에 더해, 스크립트 실행 중 이진 숫자는 변수에 캐시되어 문자열로/문자열로의 변환을 피해요.