← 목록

tracemonkey.pdf

job 3662ff519e48 · done_with_warnings · openai_compat / gpt-5.6-sol · 다운로드

진행

1
2
3
4
5
6
7
8
9
10
11
12
13
14

문서 요약

이 논문은 JavaScript와 같은 동적 언어를 효율적으로 실행하기 위한 트레이스 기반 적시 타입 특수화 기법을 제시한다. 실행 중 빈번하게 수행되는 루프 경로와 실제 값의 타입을 기록하고, 가드가 포함된 타입 특수화 네이티브 코드로 컴파일하여 일반적인 타입 디스패치 비용을 줄인다. 또한 중첩 루프를 각각의 트레이스 트리로 구성하고 외부 트리가 내부 트리를 호출하게 함으로써 과도한 꼬리 복제와 코드 캐시 증가를 방지한다. 이 기법을 SpiderMonkey에 구현한 TraceMonkey는 추적 가능한 프로그램에서 대체로 2배에서 20배의 성능 향상을 보였으며, 일부 정수 연산 중심 벤치마크에서는 25배가 넘는 향상을 달성한다. 다만 재귀 호출, eval, 일부 정규식 및 외부 함수 호출을 추적하지 못하는 한계가 있으며, 기록 및 컴파일 비용을 줄이는 작업이 향후 과제로 제시된다.

용어집 (38)

activation record활성화 레코드
blacklisting블랙리스트 지정
boxed value박싱 값
branch trace분기 트레이스
bytecode interpreter바이트코드 인터프리터
call threading호출 스레딩
common subexpression elimination공통 부분식 제거
constant folding상수 폴딩
dead code elimination죽은 코드 제거
dynamic language동적 언어
function inlining함수 인라이닝
guard instruction가드 명령어
hot loop핫 루프
inline threading인라인 스레딩
intermediate representation중간 표현
just-in-time compilation적시 컴파일
loop trace루프 트레이스
native code네이티브 코드
nested trace tree중첩 트레이스 트리
object shape객체 형태
region-based compilation영역 기반 컴파일
register allocation레지스터 할당
register spilling레지스터 스필
root trace루트 트레이스
side exit사이드 엑시트
static type information정적 타입 정보
tail duplication꼬리 복제
trace트레이스
trace cache트레이스 캐시
trace monitor트레이스 모니터
trace recorder트레이스 기록기
trace stitching트레이스 연결
trace tree트레이스 트리
trunk trace주 트레이스
type map타입 맵
type specialization타입 특수화
type stability타입 안정성
unboxed value언박싱 값

지표

deferred_ratio0.6426
fallback_pages1.0
pixel_max_diff5.0
size_ratio1.1472
missing_glyphs1.0
translated_ratio1.0
failed_segments0.0
llm_null_ratio0.0641
placeholder_ratio1.0
number_ratio1.0
glossary_consistency0.9973

경고 (1)