SlideShare uma empresa Scribd logo
1 de 62
Javascript & Web Performance

Jonghong Jeon
ETRI, SRC

Email: hollobit@etri.re.kr
Blog: http://mobile2.tistory.com
      http://twitter.com/hollobit




http://www.etri.re.kr
In The Beginning .....
 World Wide Web (Tim Berners-Lee, 1989)
     universe of network-accessible information
     anyone, anywhere, anytime
     Client to server interactions
           • HTML                                          Ftp     News      Email
           • URL                                                                        Internet
           • HTTP                       Web
                                        Server                                          Resources
     Db & other
       software
                                                                            URLs
      HTML                        Internet                                  (location
      (data/display)         communication       e.g -- http://www.foo.org/boo.html )
                                 protocols
            Hello There
            Here’s a zippy
            HTML page,
            with lots of
            Colors and
            Links ...!!!
            Fun, Eh?




                                                                           HTTP
                                                                           (transfer)
2
Evolution of World Wide Web




3
Evolution of World Wide Web
 1단계 (1989~1999) : 웹사이트의 시대, HTML과 WAP
     HTML, URL, HTTP 라는 세 가지 기술에 기초한 웹 기술이 제안되고, 보다
      나은 인간 중심의 정보처리 및 지식공유 등을 목표로 하는 단계
 2단계 (2000~2004) : XML과 웹서비스, 시맨틱 웹
     XML(eXtensible Markup Language)에 기반하며 인간 중심의 정보 처리뿐 아
      니라 다양한 디바이스와 서비스, 멀티미디어를 연결하는 것을 목표로 하는
      단계
 3단계 (2005~2009) : 웹 2.0, 웹 플랫폼 시대의 성장
     구글, 아마존, 위키피디아 등의 성공과 함께 웹 산업을 제2의 전성기로 이
      끌며 다양한 신규 서비스가 등장할 수 있는 기반을 마련
 4단계 (2010~현재) : 웹 앱의 시대, 모바일과 N-Screen 시대
     스마트 폰 및 태블릿 등 다양한 모바일 기기들을 대상으로 HTML5와 Web
      API를 통해 한 단계 진화된 웹 응용 환경을 제공하며, 위치정보 및 소셜 정
      보 등을 결합하는 통합 응용 플랫폼으로서 웹이 자리잡아 가는 단계

4
Evolution of World Wide Web
    1989             2000              2005          2010




      Web Document      Web Services      Open Web    Web App & APIs

      웹사이트의 시대,         웹서비스의 시대          웹 2.0,      웹 앱의 시대,
      HTML과 WAP                           웹 플랫폼 시대    모바일과
                                                      N-Screen 시대


5
HTML5 ?
 HTML5로 통칭되는 요소는 HTML5 뿐 아니라 CSS3, 웹 어플리케
  이션을 위한 JavaScript API 확장을 포함한 것

                                          통칭되는 “HTML5”


              HTML5                             CSS3                        JavaScript
     (Hypertext Markup Language 5.0)   (Cascading Style Sheet 3.0)
     콘텐츠 내용과 형식을 표현                                                        각종 API를 통해
                                        콘텐츠 표현 방법을 정의
                                                                            기능을 표현
                                                                         Web Storage
        문서구조의 상세화
                                          표현 기능 모듈화                     Web Worker
        멀티미디어
                                          웹 폰트                          Web Socket
        폼과 이벤트 등
                                                                         Geolocation API




                                       서로 다른 다양한 브라우저 상에서
     문서 구조의 의미를 명확히 하여                                               풍부한 기능과 자원을 제어할 수
                                       일관된 표현 기능 제공, 효과적이고
    디자인과 프로그램의 독립성을 확보                                                 있는 로컬 어플리케이션
                                         편리한 표현 방식의 변경


6
HTML5 ?
 Web Application은 HTML, CSS, JavaScript의 협주곡


                            통칭되는 “HTML5”


         HTML5                  CSS3                  JavaScript
     콘텐츠 내용과 형식을 표현       콘텐츠 표현 방법을 정의              각종 API를 통해
                                                      기능을 표현
                                                   Web Storage
       문서구조의 상세화
                            표현 기능 모듈화             Web Worker
       멀티미디어
                            웹 폰트                  Web Socket
       폼과 이벤트 등
                                                   Geolocation API




                         서로 다른 다양한 브라우저 상에서
     문서 구조의 의미를 명확히 하여                         풍부한 기능과 자원을 제어할 수
                         일관된 표현 기능 제공, 효과적이고
    디자인과 프로그램의 독립성을 확보                           있는 로컬 어플리케이션
                           편리한 표현 방식의 변경


7
HTML5 ?
                  HTML5 기술의 주요 특징                               시사점
                                                         보다 지능화되고
          Semantics:
                                                         다양한 형태의 풍부한
          보다 구조화되고 다양한 기능의 HTML 태그를 제공
                                                         웹 문서 표현 가능
          Multimedia:
                                                         액티브X와 플래쉬 같은 별도 외부 플
          비디오, 오디오 지원 기능의 자체 지원을 통한 강력한 멀티미디어 기능 제
                                                         러그 필요성 제거
          공

          Offline & Storage:                     웹의 한계로 여겨졌던 네트워크 단
          네트워크가 지원되지 않는 환경에서도 웹 이용을 가능케하는 오프라인 처 절시 처리 방법과 데이터 저장 기능
          리 기능과 로컬 스토리지, DB, File 액세스 처리 기능      문제 해결

          3D, Graphics & Effects:                        외부 플러그인 기능 없이 다양한
          SVG, 캔버스, WebGL 등을 통한 다양한 2차원/3차원 그래픽 기능의 제공   2D/3D 그래픽 처리 가능

          Device Access:                                 웹 기반 디바이스 제어 기능을 통해
          GPS, 카메라, 동작센서 등 디바이스의 하드웨어 기능을 웹에서 직접 제어      본격적인 웹 애플리케이션 개발 가
          할 수 있도록 하는 기능                                  능

          Performance & Integration:                     웹의 가장 큰 문제 중 하나였던 성능
          비동기 통신, 다중 쓰레드 기능 등을 통한 웹에서의 처리 성능을 향상         문제를 대폭 개선

          Connectivity:                                  웹에서의 다양한 통신기능(메시징,
          클라이언트와 서버간의 효율적인 통신 기능 제공을 통한 웹 기반 커뮤니케        응용간 통신 등) 제공을 통한 응용
          이션 효율 대폭 강화                                    개발 범위 확대
          CSS3 Styling Effect:
                                                         UI 측면에서 N-스크린 서비스 제공
          기존 웹 문서의 변경과 성능저하 없이 웹 애플리케이션의 UI(스타일과 효
                                                         가능
          과 등) 기능을 대폭 강화

8
HTML5 & Web App Technology Timeline

                                                                                           2010      2011 2012   2013




                                                                              HTML5 Working Draft




                                              Canavs                  Web Workers                  AppCache

                                                 Web form            Geolocation         FileAPI
    W3C                                                                                                WebGL
                                                                           Audio/Video         WebFont
    Web
    App.
                               DOM1    DOM2   DOM3                                                 DOM4
Specs.

                     CSS1      CSS2                                       CSS3
           HTTP   Javascript          AJAX                  hollobit@etri.re.kr                    XHR2

9
HTML5 & Web Application
Performance
Web Browser Architecture




11
Web Page Loading procedure




12
Web Page Loading procedure




13
W3C Navigation Timing API




     http://www.w3.org/TR/navigation-timing/

14
15
      Networking


         HTML


          CSS


      Collections


       JavaScript


      Marshalling


         DOM


      Formatting


     Block Building
                      Web Performance bottleneck?




        Layout


      Rendering
Evolution of Web Contents




16
Case : Video
 http://www.justafriend.ie/




17
Case : WebGL + LocalStorage
 http://chrome.angrybirds.com/




18
Case : SVG + WebGL
 http://www.cuttherope.ie/




19
Case : Audio
 http://daftpunk.themaninblue.com/




20
Case : Web Audio
 http://www.technitone.com




21
Case : Web Audio
     http://airtightinteractive.com/demos/js/reactive/




                                                         http://aikelab.net/websynth/


22
Dynamic Editor by Bret Victor




                                http://worrydream.com/
23
Firefox OS
     Firefox OS is a HTML 5 web-based browser, which sits on top of Android
     kernals, with all the features on handsets basically being accessed
     through a browser – similar to Google's Chrome OS.




24
The Web as an application platform
Standards for Web Applications on Mobile: Feb 2013 current state and roadmap
      http://www.w3.org/2012/05/mobile-web-app-state/




25
HTML5 관련 비즈니스 영역




26
Modern Web Applications
 JS Frameworks & JS Library




                               http://www.slideshare.net/infect2/web-app-201205

27
The Reach of JavaScript is expanding

                                                         Web Applications
                                                          HTML5 Games
     Basic Web Pages                                   Windows 8 HTML Apps




        Page Load                                          JavaScript Execution
          Time                                                    Speed
                                                            DOM Interactions
                                                           Accelerated Graphics

28                     http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly
Measuring JavaScript performance




29            http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly
Javascript : Event Processing




30
Javascript : Object control




31
Javascript : DOM control




32
Javascript : Graphics - HTML5 games

     setInterval(animate, 1000/60)

     bs[i] = new Bubble(0, 1);
     for (var i = 0; i < 1000; i++) {
         bs[i].move();
         for (var j = 0; j < i + 1; j++) {
             Bubbles.collide(bs[i], bs[j]);
         }
     }

     var distance2 = (b1.x–b2.x)*(b1.x–b2.x)+(b1.x–b2.x)*(b1.x–b2.x);

                                 Bubble
     var magnitude = (dvx * dx + dvy * dy) / d2;


                                      s
     this.elem.style.left = this.x + "px";
     this.elem.style.top = this.y + "px";

     this.canvas.getContext("2d").putImageData(canvasImageData, 0, 0);

33                         http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly
Javascript: Application Frameworks




34
What is Javascript ?
History of Javascript

            Aug 1996
            Microsoft
                          Mar 1999                                              Firefox
                            XHR                                                  Safari
                                                                                Chrome
                                                                                Mobile
                                                       //
     Sept 1995
     Netscape
                                    Aug 2001
                                      IE6
                   June 1997
                  ECMAScript
                                                                Feb 2005
                                                                  Ajax

36                      http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly
History of Javascript




                        http://en.wikipedia.org/wiki/JavaScript
37
Javascript Implementations




     Technical Committee 39 (TC39) of Ecma International.   http://en.wikipedia.org/wiki/ECMAScript
38
Javascript Conformance tests




                http://test262.ecmascript.org/




39
Javascript Performance Issues
Javascript Performance




     http://www.slideshare.net/chanezon/hdc09-keynote-browser-mobile-cloud-social-geo-portrait-of-the-developer-as-a-kid-in-a-candy-store
41
MOST COMMON PROBLEMS

     1. Slow Execution
     2. Memory leaks
     3. Poor Code Organization
     4. Lack of Understanding

         Soure: http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly


42
성능 개선을 위한 노력들
Developer Level
      Programming Best Practices & Tips
Engine Level
      Javascript Engine Race
      Javascript Interpreting mechanism Enhancement
Device Level
      Hardware Acceleration
        • Web CL
        • GPU Acceleration
Performance Measuring & Benchmark

43
1. JavaScript Best Practices

• Provide a clean separation of content, CSS,
  and JavaScript
• De-reference unused objects
• Think Asynchronous
• Working with Objects
• Defer Loading Resources
• General JavaScript Coding Best Practices

44
1. Javascript 성능향상을 위한 10가지 팁
1. 지역변수를 정의하라.
2. with() 구문을 사용하지 말라.
3. 클로저를 적절하게 사용하라
4. 객체의 프로퍼티와 배열의 요소는 변수보다 느리다.
5. 배열속으로 너무 깊이 들어가지 말라
6.  for-in 루프를 피하자 ( 그리고 함수호출에 기반한 반복도..)
7. 루프를 사용할 때 제어 조건과 제어 변수 변화를 결합하라
8. HTML 공통 객체(collection objects)를 사용하기 위한 배열을 만
   들어라.
9. 웬만하면 DOM을 건드리지 마라!
10.CSS 클래스를 변경하라. 스타일 말고!
      http://jonraasch.com/blog/10-javascript-performance-boosting-tips-from-nicholas-zakas
                      http://nodejs-kr.org/insidejs/archives/522

45
1. JavaScript Best Practices
 Do write fast objects
        Add all properties in constructor
        Don’t delete properties
        Use identifiers for property names
        Use getters and setters sparingly
        Avoid conditionally adding properties
        Avoid default property values on prototype objects

 Do use fast type-specialized arithmetic
      Be aware of number boxing
      Avoid unnecessary floating point math
      Enable type-specializing JIT compilers

 Do use arrays efficiently
        Don’t use objects as arrays and vice versa
        Pre-allocate on creation
        Enumerate efficiently
        Use typed arrays to avoid float boxing
                         Soure: http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly

46
2. Javascript Engine Race
    Mozilla
         Rhino, managed by the Mozilla Foundation, open source, developed entirely in Java
         SpiderMonkey (code name), the first ever JavaScript engine, written by Brendan Eich at Netscape Communications
         TraceMonkey, a tracing JIT compiler introduced with Firefox 3.5
         JägerMonkey, the engine introduced with Firefox 4[16]
         IonMonkey, further JIT compiler optimizations for SpiderMonkey,[17] introduced with Firefox 18[18]
         Tamarin, by Adobe Labs
    Google
         V8 - open source, developed by Google in Denmark, part of Google Chrome
    Opera
         Futhark, by Opera Software, replaced by Carakan in Opera 10.50 (released March 2010)
         Carakan, by Opera Software, used since Opera 10.50
    Safari
         JavaScriptCore, renamed to SquirrelFish and marketed as Nitro, for Safari
 Webkit
         SFX(SquirrelFish Extreme), a JavaScript engine for WebKit
    Other
         KJS - KDE's ECMAScript/JavaScript engine originally developed by Harri Porten for the KDE project's Konqueror web browser
         Narcissus open source, written by Brendan Eich, who also wrote SpiderMonkey
         Chakra, for Internet Explorer 9[19]
         dyn.js, open source, written by Douglas Campos and others[20]
         Nashorn, open source (pending), written by Oracle Java Languages and Tool Group[21]


47                                                                                    http://en.wikipedia.org/wiki/JavaScript_engine
2. Javascript Engine Race




            Soure: http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly
48
3. Javascript Interpreter

                  Dynamic (JIT)         Static (AOT)

 플랫폼 중립성          있음                    없음

 코드 품질            높음                    좋음

 동적 작동 활용         활용함                   활용하지 않음

 클래스와 계층에 대한 인식   인식함                   인식하지 않음

 컴파일 시간           제한됨. 런타임 비용이 든다. 제한이 적다. 런타임 비용이
                                   없다.

 런타임 성능 영향        있음                    없음

 컴파일 대상           JIT가 핸들함.             자가 핸들함.



                  동적 (JIT)              정적 (AOT)

 시작 성능            조정 가능하지만, 좋지는 최상
                  않다.
 스테디(steady) 상태 성능 최상                   좋음
 인터랙티브 성능         보통                    좋음

 결정적 성능           조정 가능하지만, 좋지는 최상
                  않다

                                  http://www.ibm.com/developerworks/java/library/j-rtj2/index.html

49
3. Lifecycle of your JavaScript code




     Core #1      Source
                           Parser   AST   Byte Code    Interpreter
     Foreground    Code




     Core #2                              Background
                                                       Native Code
     Background                            Compiler


50
4. Hardware Acceleration
There are many needs require a level of compute
 performace beyond the web platform as it exists today,
 such as:
      consumption of high-quality digital video or music streams,
      complex image or speech recognition,
      manipulation and processing large pictures of nature or space,
      processing large sets of tabular data locally in the browser,
      complex animations with DOM elements (via DirectX or
       OpenGL),
      exploring 3D worlds, Augmented Reality
      real-time audio and video editing,
      having an integrated development environment that runs
51
       entirely in the browser
4. Hardware Acceleration

Why offload workloads to GPU from Javascript?
     1. The browser is becoming an application platform.
     2. Because of latency and for application
        responsiveness, not everything can be done on the
        server.
     3. Examples: audio, video, games, rich internet
        applications, bitcoin mining, etc.
     4. Heterogeneous multicore parallel programming.
     5. Offloading stuff to the GPU frees up the CPU.


52
4. Hardware Acceleration
     From WebKit to the Screen




      Architectural Interlude: The GPU Process




53                http://www.chromium.org/developers/design-documents/gpu-accelerated-compositing-in-chrome
4. Web CL
 WebCL (Web Compute Language / Web OpenCL), from the
  Khronos Group, executes on the GPU:
        http://webcl.nokiaresearch.com/index.html
        Extends Javascript.
        Runs in browser (Firefox + some mobile browsers).
        “OpenCL” centric; not surprising given its origins.
        Fairly wide base of support: Khronos, Nokia, Samsung …


 Chrome WebGL
      http://www.chromeexperiments.com/webgl




54
4. WebCL Demo




55       http://www.youtube.com/watch?v=9Ttux1A-Nuc&lr=1
4. GPU Acceleration




     IE

                               Firefox



                      Chrome
56
4. GPU Acceleration Test
 http://ie.microsoft.com/testdrive/Performance/FishIETank/Default.html




57
5. Performance Measuring
    Peacekeeper
         Online speed test by Futuremark, mainly using rendering, mathematical and memory operations. Takes approx. 5 minutes
          for execution and tells results of other browsers with different CPUs. Does not respect operating system.
    Speed-Battle
         Test of JavaScript engine using simple algorithms. Displays results of other visitors (best, average, poorest) with same
          operating system and browser version. Additional statistics page with browser ranking.
    SunSpider
         SunSpider is a benchmark suite that aims to measure JavaScript performance on tasks relevant to the current and near
          future use of JavaScript in the real world, such as encryption and text manipulation.[1] The suite further attempts to be
          balanced and statistically sound.[2] Version 0.9 was released by the WebKit team in December 2007.[3] It was well
          received,[4] and other browser developers also use it to compare the JavaScript performance of different
          browsers.[5] Version 0.9.1 was released in April 2010.[6] Internet Explorer 10 shows better results than Google Chrome.
          IE10 managed to run the test in 123ms, while Chrome 19 ran the test in 155ms.[7] During Developer Summit in June 2012,
          Microsoft demonstrated Internet Explorer Mobile 10out-performing the Galaxy S III, HTC One S, and iPhone 4S on iOS 6
          Beta.[8]
    V8Bench
         JavaScript test suite by Google, used to optimize Google Chrome web browser. Chrome 15 achieves about two and half times
          better results than Firefox 8 and Opera 11, and about three times better results than Safari 5 with this benchmark (tested on
          Windows 7).[9] Does not test rendering performance.
    Dromaeo
         Mozilla test suite based on SunSpider tests. Takes several minutes for execution and displays very detailed information about
          every single test task.
    JSLitmus
         Tests JavaScript speed.
                                                                  http://en.wikipedia.org/wiki/Browser_speed_test

58
5. Performance Measuring
     http://www.webkit.org/perf/sunspider/sunspider.html




59
5. Performance Measuring
 jsPerf: JavaScript performance playground
      자바스크립트 코드 블럭들(JavaScript Snippets)에 대해서 어떤 코드블럭이
       더 성능이 좋은가 테스트
      250 test cases
        • http://jsperf.com/browse
      Popular test cases
        • http://jsperf.com/popular
      Example - StringMerge plusoperator VS arrayJoin
        • http://jsperf.com/stringmerge-plusoperator-vs-arrayjoin#run




60
Resources for Study
 Books
        JavaScript: The Good Parts (Crockford)
        JavaScript: The Definitive Guide (Flanagan)
        JavaScript Patterns (Stefanov)
        High Performance JavaScript (Zakas)
        Pro Javascript Performance
        High Performance JavaScript
 Web CL
      http://www.khronos.org/webcl/
      http://www.chromium.org/developers/demos-gpuacceleration-and-webgl
 River Trail (Intel)
      https://github.com/RiverTrail/RiverTrail/wiki



61
Thank you
     For more discussion :
       JongHong Jeon (hollobit@etri.re.kr)
       +82-42-860-5333

     Blog : http://mobile2.tistory.com/m
            http://twitter.com/hollobit



                           OR
62

Mais conteúdo relacionado

Mais procurados

모듈시스템과 webpack
모듈시스템과 webpack모듈시스템과 webpack
모듈시스템과 webpackDataUs
 
웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스Tai Hoon KIM
 
차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향Jonathan Jeon
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택Tai Hoon KIM
 
[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선NAVER D2
 
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망NAVER Engineering
 
오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5Taegon Kim
 
웹표준(XHTML+CSS)
웹표준(XHTML+CSS)웹표준(XHTML+CSS)
웹표준(XHTML+CSS)ymtech
 
차세대 모바일 웹 UI/UX 기술 및 표준화 동향 (기조발표)
차세대 모바일 웹 UI/UX 기술 및 표준화 동향 (기조발표)차세대 모바일 웹 UI/UX 기술 및 표준화 동향 (기조발표)
차세대 모바일 웹 UI/UX 기술 및 표준화 동향 (기조발표)Jonathan Jeon
 
실무자를 위한 ExtJS 엔터프라이즈 개발 노하우
실무자를 위한  ExtJS  엔터프라이즈 개발 노하우실무자를 위한  ExtJS  엔터프라이즈 개발 노하우
실무자를 위한 ExtJS 엔터프라이즈 개발 노하우미래웹기술연구소 (MIRAE WEB)
 
Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01SangHun Lee
 
드래그홈2013표준제안서
드래그홈2013표준제안서드래그홈2013표준제안서
드래그홈2013표준제안서draghome
 
Web Standards Seminar 2006
Web Standards Seminar 2006Web Standards Seminar 2006
Web Standards Seminar 2006Taeyoung Yoon
 
SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)Youngbin Han
 
웹 브라우저는 어떻게 동작하나? (2)
웹 브라우저는 어떻게 동작하나? (2)웹 브라우저는 어떻게 동작하나? (2)
웹 브라우저는 어떻게 동작하나? (2)Joone Hur
 
모바일웹Ui개발 저자세미나 1부
모바일웹Ui개발 저자세미나 1부모바일웹Ui개발 저자세미나 1부
모바일웹Ui개발 저자세미나 1부NAVER D2
 
자바카페 프론트엔드스터디 E01 - HTML5
자바카페 프론트엔드스터디 E01 - HTML5자바카페 프론트엔드스터디 E01 - HTML5
자바카페 프론트엔드스터디 E01 - HTML5Young-Beom Rhee
 

Mais procurados (20)

Mean stack Start
Mean stack StartMean stack Start
Mean stack Start
 
모듈시스템과 webpack
모듈시스템과 webpack모듈시스템과 webpack
모듈시스템과 webpack
 
웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스
 
About WebCAT
About WebCATAbout WebCAT
About WebCAT
 
차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
 
[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선
 
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
 
hexa core
hexa corehexa core
hexa core
 
오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5
 
웹표준(XHTML+CSS)
웹표준(XHTML+CSS)웹표준(XHTML+CSS)
웹표준(XHTML+CSS)
 
차세대 모바일 웹 UI/UX 기술 및 표준화 동향 (기조발표)
차세대 모바일 웹 UI/UX 기술 및 표준화 동향 (기조발표)차세대 모바일 웹 UI/UX 기술 및 표준화 동향 (기조발표)
차세대 모바일 웹 UI/UX 기술 및 표준화 동향 (기조발표)
 
실무자를 위한 ExtJS 엔터프라이즈 개발 노하우
실무자를 위한  ExtJS  엔터프라이즈 개발 노하우실무자를 위한  ExtJS  엔터프라이즈 개발 노하우
실무자를 위한 ExtJS 엔터프라이즈 개발 노하우
 
Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01
 
드래그홈2013표준제안서
드래그홈2013표준제안서드래그홈2013표준제안서
드래그홈2013표준제안서
 
Web Standards Seminar 2006
Web Standards Seminar 2006Web Standards Seminar 2006
Web Standards Seminar 2006
 
SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)
 
웹 브라우저는 어떻게 동작하나? (2)
웹 브라우저는 어떻게 동작하나? (2)웹 브라우저는 어떻게 동작하나? (2)
웹 브라우저는 어떻게 동작하나? (2)
 
모바일웹Ui개발 저자세미나 1부
모바일웹Ui개발 저자세미나 1부모바일웹Ui개발 저자세미나 1부
모바일웹Ui개발 저자세미나 1부
 
자바카페 프론트엔드스터디 E01 - HTML5
자바카페 프론트엔드스터디 E01 - HTML5자바카페 프론트엔드스터디 E01 - HTML5
자바카페 프론트엔드스터디 E01 - HTML5
 

Destaque

Why javaScript?
Why javaScript?Why javaScript?
Why javaScript?Kim Hunmin
 
HyWAI Web Bluetooth API
HyWAI Web Bluetooth APIHyWAI Web Bluetooth API
HyWAI Web Bluetooth APIJonathan Jeon
 
R과sql비교 퀵하게보기
R과sql비교 퀵하게보기R과sql비교 퀵하게보기
R과sql비교 퀵하게보기seung-hyun Park
 
몽고디비사용자교육2일차 v0.5
몽고디비사용자교육2일차 v0.5몽고디비사용자교육2일차 v0.5
몽고디비사용자교육2일차 v0.5seung-hyun Park
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법Youngjun Chang
 
OOPS in javascript
OOPS in javascriptOOPS in javascript
OOPS in javascriptVijaya Anand
 
Web performance testing
Web performance testingWeb performance testing
Web performance testingPatrick Meenan
 
Big query at GDG Korea Cloud meetup
Big query at GDG Korea Cloud meetupBig query at GDG Korea Cloud meetup
Big query at GDG Korea Cloud meetupJude Kim
 
BeLAUNCH2014 x HACKATHON week 3
BeLAUNCH2014 x HACKATHON week 3BeLAUNCH2014 x HACKATHON week 3
BeLAUNCH2014 x HACKATHON week 3Chan Lee
 
Performance test using_j_meter_ver1.2
Performance test using_j_meter_ver1.2Performance test using_j_meter_ver1.2
Performance test using_j_meter_ver1.2Tommy Lee
 
미티어 리엑티비티 ( reactivity of meteor )
미티어 리엑티비티 ( reactivity of meteor ) 미티어 리엑티비티 ( reactivity of meteor )
미티어 리엑티비티 ( reactivity of meteor ) seung-hyun Park
 
1. 미티어의 폴더구조
1. 미티어의 폴더구조1. 미티어의 폴더구조
1. 미티어의 폴더구조seung-hyun Park
 
Google Apps를 활용한 Smart Work 구축
Google Apps를 활용한 Smart Work 구축Google Apps를 활용한 Smart Work 구축
Google Apps를 활용한 Smart Work 구축선진 장
 
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드Amazon Web Services Korea
 
Meteor Korea DEV School 1st day
Meteor Korea DEV School 1st dayMeteor Korea DEV School 1st day
Meteor Korea DEV School 1st dayseung-hyun Park
 
142 리눅스와 모바일 day1-track4_2_v1.5
142 리눅스와 모바일 day1-track4_2_v1.5142 리눅스와 모바일 day1-track4_2_v1.5
142 리눅스와 모바일 day1-track4_2_v1.5NAVER D2
 

Destaque (20)

Why javaScript?
Why javaScript?Why javaScript?
Why javaScript?
 
HyWAI Web Bluetooth API
HyWAI Web Bluetooth APIHyWAI Web Bluetooth API
HyWAI Web Bluetooth API
 
R과sql비교 퀵하게보기
R과sql비교 퀵하게보기R과sql비교 퀵하게보기
R과sql비교 퀵하게보기
 
몽고디비사용자교육2일차 v0.5
몽고디비사용자교육2일차 v0.5몽고디비사용자교육2일차 v0.5
몽고디비사용자교육2일차 v0.5
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법
 
OOPS in javascript
OOPS in javascriptOOPS in javascript
OOPS in javascript
 
Web performance testing
Web performance testingWeb performance testing
Web performance testing
 
Big query at GDG Korea Cloud meetup
Big query at GDG Korea Cloud meetupBig query at GDG Korea Cloud meetup
Big query at GDG Korea Cloud meetup
 
BeLAUNCH2014 x HACKATHON week 3
BeLAUNCH2014 x HACKATHON week 3BeLAUNCH2014 x HACKATHON week 3
BeLAUNCH2014 x HACKATHON week 3
 
Performance test using_j_meter_ver1.2
Performance test using_j_meter_ver1.2Performance test using_j_meter_ver1.2
Performance test using_j_meter_ver1.2
 
미티어 리엑티비티 ( reactivity of meteor )
미티어 리엑티비티 ( reactivity of meteor ) 미티어 리엑티비티 ( reactivity of meteor )
미티어 리엑티비티 ( reactivity of meteor )
 
3. collection
3. collection3. collection
3. collection
 
1. 미티어의 폴더구조
1. 미티어의 폴더구조1. 미티어의 폴더구조
1. 미티어의 폴더구조
 
Google Apps를 활용한 Smart Work 구축
Google Apps를 활용한 Smart Work 구축Google Apps를 활용한 Smart Work 구축
Google Apps를 활용한 Smart Work 구축
 
5.router
5.router5.router
5.router
 
6.accounts
6.accounts6.accounts
6.accounts
 
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
 
4. publish / subscribe
4. publish / subscribe4. publish / subscribe
4. publish / subscribe
 
Meteor Korea DEV School 1st day
Meteor Korea DEV School 1st dayMeteor Korea DEV School 1st day
Meteor Korea DEV School 1st day
 
142 리눅스와 모바일 day1-track4_2_v1.5
142 리눅스와 모바일 day1-track4_2_v1.5142 리눅스와 모바일 day1-track4_2_v1.5
142 리눅스와 모바일 day1-track4_2_v1.5
 

Semelhante a Javascript and Web Performance

Top 10 Questions about HTML5
Top 10 Questions about HTML5Top 10 Questions about HTML5
Top 10 Questions about HTML5Jonathan Jeon
 
Future Web and WoT(Web of Things)
Future Web and WoT(Web of Things)Future Web and WoT(Web of Things)
Future Web and WoT(Web of Things)Jonathan Jeon
 
2012, 대한민국 웹 표준, 그 기로에 서다
2012, 대한민국 웹 표준, 그 기로에 서다2012, 대한민국 웹 표준, 그 기로에 서다
2012, 대한민국 웹 표준, 그 기로에 서다Jonathan Jeon
 
HTML5 융합 기술 표준화 동향
HTML5 융합 기술 표준화 동향HTML5 융합 기술 표준화 동향
HTML5 융합 기술 표준화 동향Jonathan Jeon
 
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)JeongHeon Lee
 
하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)Changhwan Yi
 
Web app 개발 방법론
Web app 개발 방법론Web app 개발 방법론
Web app 개발 방법론Sang Seok Lim
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Channy Yun
 
Smart Market Strategy for Mobile Web Developer
Smart Market Strategy for Mobile Web DeveloperSmart Market Strategy for Mobile Web Developer
Smart Market Strategy for Mobile Web DeveloperJonathan Jeon
 
01.모바일 프레임워크 이론
01.모바일 프레임워크 이론01.모바일 프레임워크 이론
01.모바일 프레임워크 이론Hankyo
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"Changhwan Yi
 
[Ewd]class02 0313
[Ewd]class02 0313[Ewd]class02 0313
[Ewd]class02 0313JY LEE
 
[EWD2014]CLASS02
[EWD2014]CLASS02[EWD2014]CLASS02
[EWD2014]CLASS02JY LEE
 
차세대 웹 플랫폼과 HTML5 기술 동향
차세대 웹 플랫폼과 HTML5 기술 동향차세대 웹 플랫폼과 HTML5 기술 동향
차세대 웹 플랫폼과 HTML5 기술 동향Jonathan Jeon
 
모바일 웹플랫폼 기술 동향
모바일 웹플랫폼 기술 동향모바일 웹플랫폼 기술 동향
모바일 웹플랫폼 기술 동향Jong Jin Hong
 
Trends on Standardizations of HTML5 based Web Platform Technology
Trends on Standardizations of HTML5 based Web Platform TechnologyTrends on Standardizations of HTML5 based Web Platform Technology
Trends on Standardizations of HTML5 based Web Platform TechnologyJonathan Jeon
 
신동형의 발로 뛰는 ICT Insight Vol3
신동형의 발로 뛰는 ICT Insight Vol3신동형의 발로 뛰는 ICT Insight Vol3
신동형의 발로 뛰는 ICT Insight Vol3Donghyung Shin
 
Swc발표자료3 1(seoul case1)
Swc발표자료3 1(seoul case1)Swc발표자료3 1(seoul case1)
Swc발표자료3 1(seoul case1)마경근 마
 
[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈NAVER D2
 

Semelhante a Javascript and Web Performance (20)

Top 10 Questions about HTML5
Top 10 Questions about HTML5Top 10 Questions about HTML5
Top 10 Questions about HTML5
 
HTML5 and Smart TV
HTML5 and Smart TVHTML5 and Smart TV
HTML5 and Smart TV
 
Future Web and WoT(Web of Things)
Future Web and WoT(Web of Things)Future Web and WoT(Web of Things)
Future Web and WoT(Web of Things)
 
2012, 대한민국 웹 표준, 그 기로에 서다
2012, 대한민국 웹 표준, 그 기로에 서다2012, 대한민국 웹 표준, 그 기로에 서다
2012, 대한민국 웹 표준, 그 기로에 서다
 
HTML5 융합 기술 표준화 동향
HTML5 융합 기술 표준화 동향HTML5 융합 기술 표준화 동향
HTML5 융합 기술 표준화 동향
 
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)
 
하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)
 
Web app 개발 방법론
Web app 개발 방법론Web app 개발 방법론
Web app 개발 방법론
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)
 
Smart Market Strategy for Mobile Web Developer
Smart Market Strategy for Mobile Web DeveloperSmart Market Strategy for Mobile Web Developer
Smart Market Strategy for Mobile Web Developer
 
01.모바일 프레임워크 이론
01.모바일 프레임워크 이론01.모바일 프레임워크 이론
01.모바일 프레임워크 이론
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"
 
[Ewd]class02 0313
[Ewd]class02 0313[Ewd]class02 0313
[Ewd]class02 0313
 
[EWD2014]CLASS02
[EWD2014]CLASS02[EWD2014]CLASS02
[EWD2014]CLASS02
 
차세대 웹 플랫폼과 HTML5 기술 동향
차세대 웹 플랫폼과 HTML5 기술 동향차세대 웹 플랫폼과 HTML5 기술 동향
차세대 웹 플랫폼과 HTML5 기술 동향
 
모바일 웹플랫폼 기술 동향
모바일 웹플랫폼 기술 동향모바일 웹플랫폼 기술 동향
모바일 웹플랫폼 기술 동향
 
Trends on Standardizations of HTML5 based Web Platform Technology
Trends on Standardizations of HTML5 based Web Platform TechnologyTrends on Standardizations of HTML5 based Web Platform Technology
Trends on Standardizations of HTML5 based Web Platform Technology
 
신동형의 발로 뛰는 ICT Insight Vol3
신동형의 발로 뛰는 ICT Insight Vol3신동형의 발로 뛰는 ICT Insight Vol3
신동형의 발로 뛰는 ICT Insight Vol3
 
Swc발표자료3 1(seoul case1)
Swc발표자료3 1(seoul case1)Swc발표자료3 1(seoul case1)
Swc발표자료3 1(seoul case1)
 
[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈
 

Mais de Jonathan Jeon

Standardization for Artificial Intelligence in Medicine
Standardization for Artificial Intelligence in MedicineStandardization for Artificial Intelligence in Medicine
Standardization for Artificial Intelligence in MedicineJonathan Jeon
 
IoT 및 인공지능을 활용한 헬스케어 제품․서비스 개발 동향 및 주요 과제
IoT 및 인공지능을 활용한  헬스케어 제품․서비스  개발 동향 및 주요 과제IoT 및 인공지능을 활용한  헬스케어 제품․서비스  개발 동향 및 주요 과제
IoT 및 인공지능을 활용한 헬스케어 제품․서비스 개발 동향 및 주요 과제Jonathan Jeon
 
헬스케어 웨어러블 : 주요 동향과 이슈
헬스케어 웨어러블 : 주요 동향과 이슈헬스케어 웨어러블 : 주요 동향과 이슈
헬스케어 웨어러블 : 주요 동향과 이슈Jonathan Jeon
 
4차 산업혁명 시대, 의료기기 표준화 이슈
4차 산업혁명 시대, 의료기기 표준화 이슈4차 산업혁명 시대, 의료기기 표준화 이슈
4차 산업혁명 시대, 의료기기 표준화 이슈Jonathan Jeon
 
Trends on standardization for smart wearable devices & services (ITU-T, OCF, ...
Trends on standardization for smart wearable devices & services (ITU-T, OCF, ...Trends on standardization for smart wearable devices & services (ITU-T, OCF, ...
Trends on standardization for smart wearable devices & services (ITU-T, OCF, ...Jonathan Jeon
 
AI and IoT : How do IoT and AI change the world?
AI and IoT : How do IoT and AI change the world?AI and IoT : How do IoT and AI change the world?
AI and IoT : How do IoT and AI change the world?Jonathan Jeon
 
Web Browser as Universal client for IoT
Web Browser as Universal client for IoTWeb Browser as Universal client for IoT
Web Browser as Universal client for IoTJonathan Jeon
 
OCF/IoTivity for Healthcare/Fitness/Wearable
OCF/IoTivity for Healthcare/Fitness/WearableOCF/IoTivity for Healthcare/Fitness/Wearable
OCF/IoTivity for Healthcare/Fitness/WearableJonathan Jeon
 
#3 Quantified Self Seoul Meetup
#3 Quantified Self Seoul Meetup #3 Quantified Self Seoul Meetup
#3 Quantified Self Seoul Meetup Jonathan Jeon
 
Trends on Smart Wearable Application Standardization
Trends on Smart Wearable Application StandardizationTrends on Smart Wearable Application Standardization
Trends on Smart Wearable Application StandardizationJonathan Jeon
 
New ICT Trends in CES 2016
New ICT Trends in CES 2016New ICT Trends in CES 2016
New ICT Trends in CES 2016Jonathan Jeon
 
The Web, After HTML5
The Web, After HTML5The Web, After HTML5
The Web, After HTML5Jonathan Jeon
 
Open Source and Open Standards
Open Source and Open StandardsOpen Source and Open Standards
Open Source and Open StandardsJonathan Jeon
 
Open Source and Open Standards
Open Source and Open StandardsOpen Source and Open Standards
Open Source and Open StandardsJonathan Jeon
 
Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Jonathan Jeon
 
WoT.js - WoT App. Framework for Open Source Hardware
WoT.js - WoT App. Framework for Open Source HardwareWoT.js - WoT App. Framework for Open Source Hardware
WoT.js - WoT App. Framework for Open Source HardwareJonathan Jeon
 
IoT and WoT (Internet of Things and Web of Things)
IoT and WoT (Internet of Things and Web of Things)IoT and WoT (Internet of Things and Web of Things)
IoT and WoT (Internet of Things and Web of Things)Jonathan Jeon
 
Web Technology and Standards Tutorial
Web Technology and Standards Tutorial Web Technology and Standards Tutorial
Web Technology and Standards Tutorial Jonathan Jeon
 
W3C 국제표준화 대응 전략
W3C 국제표준화 대응 전략W3C 국제표준화 대응 전략
W3C 국제표준화 대응 전략Jonathan Jeon
 

Mais de Jonathan Jeon (20)

Standardization for Artificial Intelligence in Medicine
Standardization for Artificial Intelligence in MedicineStandardization for Artificial Intelligence in Medicine
Standardization for Artificial Intelligence in Medicine
 
IoT 및 인공지능을 활용한 헬스케어 제품․서비스 개발 동향 및 주요 과제
IoT 및 인공지능을 활용한  헬스케어 제품․서비스  개발 동향 및 주요 과제IoT 및 인공지능을 활용한  헬스케어 제품․서비스  개발 동향 및 주요 과제
IoT 및 인공지능을 활용한 헬스케어 제품․서비스 개발 동향 및 주요 과제
 
헬스케어 웨어러블 : 주요 동향과 이슈
헬스케어 웨어러블 : 주요 동향과 이슈헬스케어 웨어러블 : 주요 동향과 이슈
헬스케어 웨어러블 : 주요 동향과 이슈
 
4차 산업혁명 시대, 의료기기 표준화 이슈
4차 산업혁명 시대, 의료기기 표준화 이슈4차 산업혁명 시대, 의료기기 표준화 이슈
4차 산업혁명 시대, 의료기기 표준화 이슈
 
Trends on standardization for smart wearable devices & services (ITU-T, OCF, ...
Trends on standardization for smart wearable devices & services (ITU-T, OCF, ...Trends on standardization for smart wearable devices & services (ITU-T, OCF, ...
Trends on standardization for smart wearable devices & services (ITU-T, OCF, ...
 
AI and IoT : How do IoT and AI change the world?
AI and IoT : How do IoT and AI change the world?AI and IoT : How do IoT and AI change the world?
AI and IoT : How do IoT and AI change the world?
 
Web Browser as Universal client for IoT
Web Browser as Universal client for IoTWeb Browser as Universal client for IoT
Web Browser as Universal client for IoT
 
OCF/IoTivity for Healthcare/Fitness/Wearable
OCF/IoTivity for Healthcare/Fitness/WearableOCF/IoTivity for Healthcare/Fitness/Wearable
OCF/IoTivity for Healthcare/Fitness/Wearable
 
#3 Quantified Self Seoul Meetup
#3 Quantified Self Seoul Meetup #3 Quantified Self Seoul Meetup
#3 Quantified Self Seoul Meetup
 
Trends on Smart Wearable Application Standardization
Trends on Smart Wearable Application StandardizationTrends on Smart Wearable Application Standardization
Trends on Smart Wearable Application Standardization
 
New ICT Trends in CES 2016
New ICT Trends in CES 2016New ICT Trends in CES 2016
New ICT Trends in CES 2016
 
The Web, After HTML5
The Web, After HTML5The Web, After HTML5
The Web, After HTML5
 
Open Source and Open Standards
Open Source and Open StandardsOpen Source and Open Standards
Open Source and Open Standards
 
Open Source and Open Standards
Open Source and Open StandardsOpen Source and Open Standards
Open Source and Open Standards
 
Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5Hybrid App Platform - HyWAI 3.5
Hybrid App Platform - HyWAI 3.5
 
WoT.js - WoT App. Framework for Open Source Hardware
WoT.js - WoT App. Framework for Open Source HardwareWoT.js - WoT App. Framework for Open Source Hardware
WoT.js - WoT App. Framework for Open Source Hardware
 
IoT and WoT (Internet of Things and Web of Things)
IoT and WoT (Internet of Things and Web of Things)IoT and WoT (Internet of Things and Web of Things)
IoT and WoT (Internet of Things and Web of Things)
 
Web Technology and Standards Tutorial
Web Technology and Standards Tutorial Web Technology and Standards Tutorial
Web Technology and Standards Tutorial
 
Mobile, IoT and Web
Mobile, IoT and WebMobile, IoT and Web
Mobile, IoT and Web
 
W3C 국제표준화 대응 전략
W3C 국제표준화 대응 전략W3C 국제표준화 대응 전략
W3C 국제표준화 대응 전략
 

Último

Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 

Último (6)

Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 

Javascript and Web Performance

  • 1. Javascript & Web Performance Jonghong Jeon ETRI, SRC Email: hollobit@etri.re.kr Blog: http://mobile2.tistory.com http://twitter.com/hollobit http://www.etri.re.kr
  • 2. In The Beginning .....  World Wide Web (Tim Berners-Lee, 1989)  universe of network-accessible information  anyone, anywhere, anytime  Client to server interactions • HTML Ftp News Email • URL Internet • HTTP Web Server Resources Db & other software URLs HTML Internet (location (data/display) communication e.g -- http://www.foo.org/boo.html ) protocols Hello There Here’s a zippy HTML page, with lots of Colors and Links ...!!! Fun, Eh? HTTP (transfer) 2
  • 3. Evolution of World Wide Web 3
  • 4. Evolution of World Wide Web  1단계 (1989~1999) : 웹사이트의 시대, HTML과 WAP  HTML, URL, HTTP 라는 세 가지 기술에 기초한 웹 기술이 제안되고, 보다 나은 인간 중심의 정보처리 및 지식공유 등을 목표로 하는 단계  2단계 (2000~2004) : XML과 웹서비스, 시맨틱 웹  XML(eXtensible Markup Language)에 기반하며 인간 중심의 정보 처리뿐 아 니라 다양한 디바이스와 서비스, 멀티미디어를 연결하는 것을 목표로 하는 단계  3단계 (2005~2009) : 웹 2.0, 웹 플랫폼 시대의 성장  구글, 아마존, 위키피디아 등의 성공과 함께 웹 산업을 제2의 전성기로 이 끌며 다양한 신규 서비스가 등장할 수 있는 기반을 마련  4단계 (2010~현재) : 웹 앱의 시대, 모바일과 N-Screen 시대  스마트 폰 및 태블릿 등 다양한 모바일 기기들을 대상으로 HTML5와 Web API를 통해 한 단계 진화된 웹 응용 환경을 제공하며, 위치정보 및 소셜 정 보 등을 결합하는 통합 응용 플랫폼으로서 웹이 자리잡아 가는 단계 4
  • 5. Evolution of World Wide Web 1989 2000 2005 2010 Web Document Web Services Open Web Web App & APIs 웹사이트의 시대, 웹서비스의 시대 웹 2.0, 웹 앱의 시대, HTML과 WAP 웹 플랫폼 시대 모바일과 N-Screen 시대 5
  • 6. HTML5 ?  HTML5로 통칭되는 요소는 HTML5 뿐 아니라 CSS3, 웹 어플리케 이션을 위한 JavaScript API 확장을 포함한 것 통칭되는 “HTML5” HTML5 CSS3 JavaScript (Hypertext Markup Language 5.0) (Cascading Style Sheet 3.0) 콘텐츠 내용과 형식을 표현 각종 API를 통해 콘텐츠 표현 방법을 정의 기능을 표현  Web Storage  문서구조의 상세화  표현 기능 모듈화  Web Worker  멀티미디어  웹 폰트  Web Socket  폼과 이벤트 등  Geolocation API 서로 다른 다양한 브라우저 상에서 문서 구조의 의미를 명확히 하여 풍부한 기능과 자원을 제어할 수 일관된 표현 기능 제공, 효과적이고 디자인과 프로그램의 독립성을 확보 있는 로컬 어플리케이션 편리한 표현 방식의 변경 6
  • 7. HTML5 ?  Web Application은 HTML, CSS, JavaScript의 협주곡 통칭되는 “HTML5” HTML5 CSS3 JavaScript 콘텐츠 내용과 형식을 표현 콘텐츠 표현 방법을 정의 각종 API를 통해 기능을 표현  Web Storage  문서구조의 상세화  표현 기능 모듈화  Web Worker  멀티미디어  웹 폰트  Web Socket  폼과 이벤트 등  Geolocation API 서로 다른 다양한 브라우저 상에서 문서 구조의 의미를 명확히 하여 풍부한 기능과 자원을 제어할 수 일관된 표현 기능 제공, 효과적이고 디자인과 프로그램의 독립성을 확보 있는 로컬 어플리케이션 편리한 표현 방식의 변경 7
  • 8. HTML5 ? HTML5 기술의 주요 특징 시사점 보다 지능화되고 Semantics: 다양한 형태의 풍부한 보다 구조화되고 다양한 기능의 HTML 태그를 제공 웹 문서 표현 가능 Multimedia: 액티브X와 플래쉬 같은 별도 외부 플 비디오, 오디오 지원 기능의 자체 지원을 통한 강력한 멀티미디어 기능 제 러그 필요성 제거 공 Offline & Storage: 웹의 한계로 여겨졌던 네트워크 단 네트워크가 지원되지 않는 환경에서도 웹 이용을 가능케하는 오프라인 처 절시 처리 방법과 데이터 저장 기능 리 기능과 로컬 스토리지, DB, File 액세스 처리 기능 문제 해결 3D, Graphics & Effects: 외부 플러그인 기능 없이 다양한 SVG, 캔버스, WebGL 등을 통한 다양한 2차원/3차원 그래픽 기능의 제공 2D/3D 그래픽 처리 가능 Device Access: 웹 기반 디바이스 제어 기능을 통해 GPS, 카메라, 동작센서 등 디바이스의 하드웨어 기능을 웹에서 직접 제어 본격적인 웹 애플리케이션 개발 가 할 수 있도록 하는 기능 능 Performance & Integration: 웹의 가장 큰 문제 중 하나였던 성능 비동기 통신, 다중 쓰레드 기능 등을 통한 웹에서의 처리 성능을 향상 문제를 대폭 개선 Connectivity: 웹에서의 다양한 통신기능(메시징, 클라이언트와 서버간의 효율적인 통신 기능 제공을 통한 웹 기반 커뮤니케 응용간 통신 등) 제공을 통한 응용 이션 효율 대폭 강화 개발 범위 확대 CSS3 Styling Effect: UI 측면에서 N-스크린 서비스 제공 기존 웹 문서의 변경과 성능저하 없이 웹 애플리케이션의 UI(스타일과 효 가능 과 등) 기능을 대폭 강화 8
  • 9. HTML5 & Web App Technology Timeline 2010 2011 2012 2013 HTML5 Working Draft Canavs Web Workers AppCache Web form Geolocation FileAPI W3C WebGL Audio/Video WebFont Web App. DOM1 DOM2 DOM3 DOM4 Specs. CSS1 CSS2 CSS3 HTTP Javascript AJAX hollobit@etri.re.kr XHR2 9
  • 10. HTML5 & Web Application Performance
  • 12. Web Page Loading procedure 12
  • 13. Web Page Loading procedure 13
  • 14. W3C Navigation Timing API http://www.w3.org/TR/navigation-timing/ 14
  • 15. 15 Networking HTML CSS Collections JavaScript Marshalling DOM Formatting Block Building Web Performance bottleneck? Layout Rendering
  • 16. Evolution of Web Contents 16
  • 17. Case : Video  http://www.justafriend.ie/ 17
  • 18. Case : WebGL + LocalStorage  http://chrome.angrybirds.com/ 18
  • 19. Case : SVG + WebGL  http://www.cuttherope.ie/ 19
  • 20. Case : Audio  http://daftpunk.themaninblue.com/ 20
  • 21. Case : Web Audio  http://www.technitone.com 21
  • 22. Case : Web Audio http://airtightinteractive.com/demos/js/reactive/ http://aikelab.net/websynth/ 22
  • 23. Dynamic Editor by Bret Victor http://worrydream.com/ 23
  • 24. Firefox OS Firefox OS is a HTML 5 web-based browser, which sits on top of Android kernals, with all the features on handsets basically being accessed through a browser – similar to Google's Chrome OS. 24
  • 25. The Web as an application platform Standards for Web Applications on Mobile: Feb 2013 current state and roadmap  http://www.w3.org/2012/05/mobile-web-app-state/ 25
  • 27. Modern Web Applications  JS Frameworks & JS Library http://www.slideshare.net/infect2/web-app-201205 27
  • 28. The Reach of JavaScript is expanding Web Applications HTML5 Games Basic Web Pages Windows 8 HTML Apps Page Load JavaScript Execution Time Speed DOM Interactions Accelerated Graphics 28 http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly
  • 29. Measuring JavaScript performance 29 http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly
  • 30. Javascript : Event Processing 30
  • 31. Javascript : Object control 31
  • 32. Javascript : DOM control 32
  • 33. Javascript : Graphics - HTML5 games setInterval(animate, 1000/60) bs[i] = new Bubble(0, 1); for (var i = 0; i < 1000; i++) { bs[i].move(); for (var j = 0; j < i + 1; j++) { Bubbles.collide(bs[i], bs[j]); } } var distance2 = (b1.x–b2.x)*(b1.x–b2.x)+(b1.x–b2.x)*(b1.x–b2.x); Bubble var magnitude = (dvx * dx + dvy * dy) / d2; s this.elem.style.left = this.x + "px"; this.elem.style.top = this.y + "px"; this.canvas.getContext("2d").putImageData(canvasImageData, 0, 0); 33 http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly
  • 36. History of Javascript Aug 1996 Microsoft Mar 1999 Firefox XHR Safari Chrome Mobile // Sept 1995 Netscape Aug 2001 IE6 June 1997 ECMAScript Feb 2005 Ajax 36 http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly
  • 37. History of Javascript http://en.wikipedia.org/wiki/JavaScript 37
  • 38. Javascript Implementations Technical Committee 39 (TC39) of Ecma International. http://en.wikipedia.org/wiki/ECMAScript 38
  • 39. Javascript Conformance tests http://test262.ecmascript.org/ 39
  • 41. Javascript Performance http://www.slideshare.net/chanezon/hdc09-keynote-browser-mobile-cloud-social-geo-portrait-of-the-developer-as-a-kid-in-a-candy-store 41
  • 42. MOST COMMON PROBLEMS 1. Slow Execution 2. Memory leaks 3. Poor Code Organization 4. Lack of Understanding Soure: http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly 42
  • 43. 성능 개선을 위한 노력들 Developer Level  Programming Best Practices & Tips Engine Level  Javascript Engine Race  Javascript Interpreting mechanism Enhancement Device Level  Hardware Acceleration • Web CL • GPU Acceleration Performance Measuring & Benchmark 43
  • 44. 1. JavaScript Best Practices • Provide a clean separation of content, CSS, and JavaScript • De-reference unused objects • Think Asynchronous • Working with Objects • Defer Loading Resources • General JavaScript Coding Best Practices 44
  • 45. 1. Javascript 성능향상을 위한 10가지 팁 1. 지역변수를 정의하라. 2. with() 구문을 사용하지 말라. 3. 클로저를 적절하게 사용하라 4. 객체의 프로퍼티와 배열의 요소는 변수보다 느리다. 5. 배열속으로 너무 깊이 들어가지 말라 6. for-in 루프를 피하자 ( 그리고 함수호출에 기반한 반복도..) 7. 루프를 사용할 때 제어 조건과 제어 변수 변화를 결합하라 8. HTML 공통 객체(collection objects)를 사용하기 위한 배열을 만 들어라. 9. 웬만하면 DOM을 건드리지 마라! 10.CSS 클래스를 변경하라. 스타일 말고! http://jonraasch.com/blog/10-javascript-performance-boosting-tips-from-nicholas-zakas http://nodejs-kr.org/insidejs/archives/522 45
  • 46. 1. JavaScript Best Practices  Do write fast objects  Add all properties in constructor  Don’t delete properties  Use identifiers for property names  Use getters and setters sparingly  Avoid conditionally adding properties  Avoid default property values on prototype objects  Do use fast type-specialized arithmetic  Be aware of number boxing  Avoid unnecessary floating point math  Enable type-specializing JIT compilers  Do use arrays efficiently  Don’t use objects as arrays and vice versa  Pre-allocate on creation  Enumerate efficiently  Use typed arrays to avoid float boxing Soure: http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly 46
  • 47. 2. Javascript Engine Race  Mozilla  Rhino, managed by the Mozilla Foundation, open source, developed entirely in Java  SpiderMonkey (code name), the first ever JavaScript engine, written by Brendan Eich at Netscape Communications  TraceMonkey, a tracing JIT compiler introduced with Firefox 3.5  JägerMonkey, the engine introduced with Firefox 4[16]  IonMonkey, further JIT compiler optimizations for SpiderMonkey,[17] introduced with Firefox 18[18]  Tamarin, by Adobe Labs  Google  V8 - open source, developed by Google in Denmark, part of Google Chrome  Opera  Futhark, by Opera Software, replaced by Carakan in Opera 10.50 (released March 2010)  Carakan, by Opera Software, used since Opera 10.50  Safari  JavaScriptCore, renamed to SquirrelFish and marketed as Nitro, for Safari  Webkit  SFX(SquirrelFish Extreme), a JavaScript engine for WebKit  Other  KJS - KDE's ECMAScript/JavaScript engine originally developed by Harri Porten for the KDE project's Konqueror web browser  Narcissus open source, written by Brendan Eich, who also wrote SpiderMonkey  Chakra, for Internet Explorer 9[19]  dyn.js, open source, written by Douglas Campos and others[20]  Nashorn, open source (pending), written by Oracle Java Languages and Tool Group[21] 47 http://en.wikipedia.org/wiki/JavaScript_engine
  • 48. 2. Javascript Engine Race Soure: http://channel9.msdn.com/Events/Build/2012/4-000?utm_source=javascriptweekly 48
  • 49. 3. Javascript Interpreter Dynamic (JIT) Static (AOT) 플랫폼 중립성 있음 없음 코드 품질 높음 좋음 동적 작동 활용 활용함 활용하지 않음 클래스와 계층에 대한 인식 인식함 인식하지 않음 컴파일 시간 제한됨. 런타임 비용이 든다. 제한이 적다. 런타임 비용이 없다. 런타임 성능 영향 있음 없음 컴파일 대상 JIT가 핸들함. 자가 핸들함. 동적 (JIT) 정적 (AOT) 시작 성능 조정 가능하지만, 좋지는 최상 않다. 스테디(steady) 상태 성능 최상 좋음 인터랙티브 성능 보통 좋음 결정적 성능 조정 가능하지만, 좋지는 최상 않다 http://www.ibm.com/developerworks/java/library/j-rtj2/index.html 49
  • 50. 3. Lifecycle of your JavaScript code Core #1 Source Parser AST Byte Code Interpreter Foreground Code Core #2 Background Native Code Background Compiler 50
  • 51. 4. Hardware Acceleration There are many needs require a level of compute performace beyond the web platform as it exists today, such as:  consumption of high-quality digital video or music streams,  complex image or speech recognition,  manipulation and processing large pictures of nature or space,  processing large sets of tabular data locally in the browser,  complex animations with DOM elements (via DirectX or OpenGL),  exploring 3D worlds, Augmented Reality  real-time audio and video editing,  having an integrated development environment that runs 51 entirely in the browser
  • 52. 4. Hardware Acceleration Why offload workloads to GPU from Javascript? 1. The browser is becoming an application platform. 2. Because of latency and for application responsiveness, not everything can be done on the server. 3. Examples: audio, video, games, rich internet applications, bitcoin mining, etc. 4. Heterogeneous multicore parallel programming. 5. Offloading stuff to the GPU frees up the CPU. 52
  • 53. 4. Hardware Acceleration From WebKit to the Screen Architectural Interlude: The GPU Process 53 http://www.chromium.org/developers/design-documents/gpu-accelerated-compositing-in-chrome
  • 54. 4. Web CL  WebCL (Web Compute Language / Web OpenCL), from the Khronos Group, executes on the GPU:  http://webcl.nokiaresearch.com/index.html  Extends Javascript.  Runs in browser (Firefox + some mobile browsers).  “OpenCL” centric; not surprising given its origins.  Fairly wide base of support: Khronos, Nokia, Samsung …  Chrome WebGL  http://www.chromeexperiments.com/webgl 54
  • 55. 4. WebCL Demo 55 http://www.youtube.com/watch?v=9Ttux1A-Nuc&lr=1
  • 56. 4. GPU Acceleration IE Firefox Chrome 56
  • 57. 4. GPU Acceleration Test  http://ie.microsoft.com/testdrive/Performance/FishIETank/Default.html 57
  • 58. 5. Performance Measuring  Peacekeeper  Online speed test by Futuremark, mainly using rendering, mathematical and memory operations. Takes approx. 5 minutes for execution and tells results of other browsers with different CPUs. Does not respect operating system.  Speed-Battle  Test of JavaScript engine using simple algorithms. Displays results of other visitors (best, average, poorest) with same operating system and browser version. Additional statistics page with browser ranking.  SunSpider  SunSpider is a benchmark suite that aims to measure JavaScript performance on tasks relevant to the current and near future use of JavaScript in the real world, such as encryption and text manipulation.[1] The suite further attempts to be balanced and statistically sound.[2] Version 0.9 was released by the WebKit team in December 2007.[3] It was well received,[4] and other browser developers also use it to compare the JavaScript performance of different browsers.[5] Version 0.9.1 was released in April 2010.[6] Internet Explorer 10 shows better results than Google Chrome. IE10 managed to run the test in 123ms, while Chrome 19 ran the test in 155ms.[7] During Developer Summit in June 2012, Microsoft demonstrated Internet Explorer Mobile 10out-performing the Galaxy S III, HTC One S, and iPhone 4S on iOS 6 Beta.[8]  V8Bench  JavaScript test suite by Google, used to optimize Google Chrome web browser. Chrome 15 achieves about two and half times better results than Firefox 8 and Opera 11, and about three times better results than Safari 5 with this benchmark (tested on Windows 7).[9] Does not test rendering performance.  Dromaeo  Mozilla test suite based on SunSpider tests. Takes several minutes for execution and displays very detailed information about every single test task.  JSLitmus  Tests JavaScript speed. http://en.wikipedia.org/wiki/Browser_speed_test 58
  • 59. 5. Performance Measuring http://www.webkit.org/perf/sunspider/sunspider.html 59
  • 60. 5. Performance Measuring  jsPerf: JavaScript performance playground  자바스크립트 코드 블럭들(JavaScript Snippets)에 대해서 어떤 코드블럭이 더 성능이 좋은가 테스트  250 test cases • http://jsperf.com/browse  Popular test cases • http://jsperf.com/popular  Example - StringMerge plusoperator VS arrayJoin • http://jsperf.com/stringmerge-plusoperator-vs-arrayjoin#run 60
  • 61. Resources for Study  Books  JavaScript: The Good Parts (Crockford)  JavaScript: The Definitive Guide (Flanagan)  JavaScript Patterns (Stefanov)  High Performance JavaScript (Zakas)  Pro Javascript Performance  High Performance JavaScript  Web CL  http://www.khronos.org/webcl/  http://www.chromium.org/developers/demos-gpuacceleration-and-webgl  River Trail (Intel)  https://github.com/RiverTrail/RiverTrail/wiki 61
  • 62. Thank you For more discussion : JongHong Jeon (hollobit@etri.re.kr) +82-42-860-5333 Blog : http://mobile2.tistory.com/m http://twitter.com/hollobit OR 62