1 / 22

Prestandaanalys av JavaScript

Prestandaanalys av JavaScript. Examensarbete utfört av Fredrik Smedberg. Prestandaanalys av JavaScript. Presentationens upplägg. Vad är JavaScript? Varför är språket viktigt? Historisk utveckling Min frågeställning Avgränsningar Metod Resultat Slutsats Frågor?. 2 av 22.

dian
Download Presentation

Prestandaanalys av JavaScript

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Prestandaanalys av JavaScript Examensarbete utfört av Fredrik Smedberg

  2. Prestandaanalys av JavaScript Presentationens upplägg • Vad är JavaScript? • Varför är språket viktigt? • Historisk utveckling • Min frågeställning • Avgränsningar • Metod • Resultat • Slutsats • Frågor? 2 av 22

  3. Prestandaanalys av JavaScript Vad är JavaScript? – Språkets födelse • Netscape anställde Brendan Eich, 1995 • Mocha -> LiveScript -> JavaScript • Microsoft JScript, Internet Explorer 3 • ECMAScript • AJAX • Gmail • Hitta.se 3 av 22

  4. Prestandaanalys av JavaScript Vad är JavaScript? – Design • Multi-paradigm • Prototype-baserat (avsaknad av klasser) • Imperativt • Funktionellt • Scriptspråk • Dynamiskt • Likheter med • C (syntaxen) • Self och Scheme (designprinciper) • Men även Java, Perl och Python 4 av 22

  5. Prestandaanalys av JavaScript Vad är JavaScript? – Design • Körs i virtuell maskin • Utseende • /* Finds the lowest common multiple of two numbers */ • functionLCMCalculator(x, y) { // constructor function • functioncheckInt(x) { // inner function • // exception throwing • if (x % 1 != 0) thrownewTypeError(x + " is not an integer"); • return x; • } • // semicolons are optional (but beware since this may cause • // consecutive lines to be erroneously treated as a single • // statement) • this.a = checkInt(x) • this.b = checkInt(y) • } 5 av 22

  6. Prestandaanalys av JavaScript Varför är språket viktigt? • Ökad användning • Internet har spridit sig 6 av 22

  7. Prestandaanalys av JavaScript Varför är språket viktigt? • Adobes Flash (ej standard) • Suns (Oracles) Java (halvstandard) • Microsofts Silverlight (ej standard) • HTML5 (blivande standard) 7 av 22

  8. Prestandaanalys av JavaScript Historisk utveckling 8 av 22

  9. Prestandaanalys av JavaScript Min frågeställning • Har prestandan påverkats? • Har koden blivit lättare att förstå? • Rader kod • Återanvändbarhet • Minnesläckor • Vilka utvecklingsverktyg finns och hur påverkas de utvecklingen? • Var och när är det motiverat att använda JavaScript? • Hur ofta används den kod jag skrivit om? 9 av 22

  10. Prestandaanalys av JavaScript Avgränsningar • Vad tittade jag på? • Hur prestandan påverkas • Mängd kod och hur den påverkar läsbarheten • Minnesläckor • Portabilitet och återanvändbarhet • Översiktlig genomgång av utvecklingsverktyg • Hur ofta skriven kod används • Endast C++ och JavaScript jämfördes • Exempel på vad jag inte tittade på 10 av 22

  11. Prestandaanalys av JavaScript Metod • Litteratur och akademiska papper • Identifierade lämpliga uppgifter att implementera • GIF-dekoder • XML-parser • Elementära tester • JPEG-encoder • Industriella benchmarks 11 av 22

  12. Prestandaanalys av JavaScript Metod – GIF-dekoder • Vad är en GIF-dekoder? • En C++-version, fyra versioner skrivna i JavaScript • Svårigheten med att implementera en GIF-dekoder i JavaScript • Varför GIF-dekoder? 12 av 22

  13. Prestandaanalys av JavaScript Metod – GIF-dekoder • Dekoderns olika steg 13 av 22

  14. Prestandaanalys av JavaScript Metod – XML-parser • Dekoda en slags XML • C++-dekoder • JavaScript-dekoder baserad på C++-versionen • Skrev ny JavaScript-dekoder baserad på regular expressions • Varför XML-parser? 14 av 22

  15. Prestandaanalys av JavaScript Metod – Elementära tester • Varför elementära tester? • Exempel • Hashalgoritmer • Sortering • Matrisberäkningar • Funktionsanrop • Nästlade loopar • Strängkonkatenering 15 av 22

  16. Prestandaanalys av JavaScript Resultat – GIF-dekoder 16 av 22

  17. Prestandaanalys av JavaScript Resultat – Minnesanvändning 17 av 22

  18. Prestandaanalys av JavaScript Resultat – XML-parser 18 av 22

  19. Prestandaanalys av JavaScript Resultat – JPEG-encoder 19 av 22

  20. Prestandaanalys av JavaScript Resultat – Annat • Rader kod? • Responsivitet? • Industriella benchmarks? • Internet Explorer? 20 av 22

  21. Prestandaanalys av JavaScript Slutsats • JavaScript är snabbt! • Det går skapa de flesta program med • fullgod prestanda • En stor nackdel är minnesförbrukningen • En kod kan köras på många platformar • Kräver mindre rader kod • Internet Explorer är en stor flaskhals • Utvecklingsverktyg? 21 av 22

  22. Prestandaanalys av JavaScript Frågor? 22 av 22

More Related