4. 게임(멀티미디어) 관련 웹 기술
•
성능 부분
• 자바스크립트 해석기
• 실행방식:컴파일, 인터프리트, jit
• 자바스크립트 변환기
• C/C++ -> 자바스크립트 변환: Emscripten
• Asm.js
• 자바스크립트 바이트코드: 중간코드
• API 확장: Typed Array
• 쓰레기 수집기
멀티미디어 관련 API
•
•
•
•
•
•
웹GL
웹오디오
웹RTC/웹소켓
포인터 이벤트/게임패드 API
풀스크린 API
디바이스 API
2013 W3C HTML5 Day Conference
4
•
5. 웹의 성능
• HTML/CSS 파싱
• DOM
• 렌더링
• 자바스크립트
• 자바스크립트 실행
• 자바스크립트 API: XHR, etc.
2013 W3C HTML5 Day Conference
5
• 네트워크
6. 자바스크립트의 성능
•
자바스크립트 해석기
• 실행방식
• 인터프리트
• 컴파일: Javascript Bytecode 실행
• JIT 컴파일: 실행시간 중에 기계어 코드로 변환하여 실행
• Google Chrome의 V8
• 관련기술: Asm.js
•
쓰레기 수집기 (garbage collector)
• 쓰레기 수집: 불필요한 객체를 자동으로 회수
2013 W3C HTML5 Day Conference
6
• 60 fps (16ms), 100 ms or more
7. 자바스크립트의 성능 향상
• ASM.JS
• asmjs.org
• Subset of JavaScript
• 자바스크립트 해석기의 JIT 컴파일을 위한 자바스크립트 코드
• C/C++ -> 자바스크립트 변환시 성능 향상
• 주요 기능
• Implicitly typed
• Typed Array
2013 W3C HTML5 Day Conference
7
function compiledCalculation() {
var x = f()|0; // x is a 32-bit value
var y = g()|0; // so is y
return (x+y)|0; // 32-bit addition, no type or overflow checks
}
9. 자바스크립트 변환기
(TRANSLATOR)
• C/C++
• Emscripten:(www.emscripten.org)
• Java
• Google Web Toolkit
• C#
2013 W3C HTML5 Day Conference
9
• CoffecScript, TypeScript, Dart
10. 자바스크립트 API 확장
•
Typed Array
• The need to have an efficient way to handle binary data in WebGL.
• A slab of memory with a typed view into it
• Like how arrays work in C.
• The JavaScript engine can pass the memory directly to native libraries
• Better than JavaScript arrays for passing data to WebGL and other APIs
dealing with binary data.
• Typed array views
Single-type arrays to a segment of an ArrayBuffer.
Views for all the usual numeric types
Float32Array, Float64Array, Int32Array and Uint8Array.
Special view Uint8ClampedArray
The pixel array type in Canvas's ImageData
2013 W3C HTML5 Day Conference
10
•
•
•
•
•
12. 멀티미디어 관련 API
•
웹GL
• 웹을 위한 OpenGL JavaScript API
•
웹오디오
• Low-Level Audio API
•
웹RTC/웹소켓
• Media Capture, and p2p connection
•
포인터 이벤트/게임패드 API
• Mouse and Touch Event
•
풀스크린 API
•
디바이스 API
2013 W3C HTML5 Day Conference
12
• 웹스토리지, 인덱스드 데이터베이스, 오프라인 웹앱
• 파일 API