Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Emner
  • Opret bruger
  • Log ind
Se kommentarer (2)
Emner Java, Browsere

Dansk udvikler: Sådan satte vi turbolader på Chromes V8-motor

Bedre Javascript-ydelse var centralt i salgstalen for den nye version 2.0 af Google-browseren Chrome. Google-udvikler Mads Ager fortæller her, hvordan de danske udviklere fik klemt 30 procent bedre ydelse ind i Javascript-motoren V8.

Af Mikkel Meister Tirsdag, 26. maj 2009 - 6:59

Afviklingen af Javascript-kode er blevet op til 30 procent hurtigere i den nye version 2.0 af Googles browser Chrome, og dét tryk på speederen har været det vigtigste indsatsområde for det danske udviklingshold, der står bag Javascript-motoren V8.

Når brugeren besøger en hjemmeside, er det nemlig i stigende grad Javascript-kode, der sørger for funktionaliteten på hjemmesiden, og det kan ofte give ventetid.

»Vores overordnede mål med Chrome 2.0 var at få hurtigere Javascript-eksekvering for alle brugere. Det har vi opnået ved at lave to store forbedringer og ved at fintune flere forskellige steder i systemet,« siger Google-udvikler Mads Ager, der arbejder på V8.

To store forbedringer og lidt fintuning De to store punkter på listen over forbedringer er en ny komponent til behandling af regulære udtryk, der håndterer tekststrenge mere effektivt, og en ny compiler, der benytter sig af registerallokering, da det er betydeligt hurtigere at arbejde i CPU'ens registre frem for computerens hukommelse.

»Når vi modtager en klump Javascript-kode over nettet, tager vores compiler fat i den og generer maskinkode, som kan udføres på brugerens computer. Det har været nødvendigt helt fra begyndelsen at have en compiler som en integreret del af V8-motoren, og i den nye compiler har vi så implementeret registerallokering for at generere kode, der kører hurtigere,« siger Mads Ager.

Den regulære udtrykskomponent i V8 håndterer Javascripts regulære udtryk, som en Javascript-programmører kan bruge til at søge i de brugte tekststrenge. I den tidligere version af V8 brugte udviklerne standardbiblioteket Perl Compatible Regular Expressions (PCRE), men det arbejdede ikke særlig godt sammen med Javascripts måde at håndtere regulære udtryk på.

Derfor gik V8-folkene i første omgang over til en mere Javascipt-specifik version, JSCRE.

»Det virkede sådan set fint nok, men det var ikke særlig effektivt. Vi blev nødt til at lave for mange strengkonverteringer, da vi repræsenterer tekststrenge anderledes internt i V8,« siger Mads Ager.

»Derfor har vi implementeret vores egen regulære udtrykskomponent, som slipper uden om alle strengkonverteringerne og benytter sig af nogle smartere algoritmer,« uddyber Mads Ager.

Den nye regulære udtrykskomponent tager de regulære udtryk og laver dem om til en udvidet version af en endelig automat - en tilstandsmaskine. Det gøres af den simple grund, at det er nemmere at arbejde med tilstandsmaskinen i forhold til det oprindelige regulære udtryk, som blot er en tekststreng.

»Det er det samme princip som med en compiler, hvor det første man gør, er at opbygge et abstrakt syntakstræ ud fra den kildekode, man har. Det giver en ny repræsentation, som er nemmere at arbejde med, og det er det samme med automaten, som for os er nemmere at arbejde med end regulære udtryk,« siger Mads Ager. Svært at spå om fremtidige forbedringer Alt i alt har de to forbedringer udgjort kernen i performanceoptimeringen i den nye Chrome 2.0, der dog ikke er sluppet for en række finpudsninger hist og her.

»Det at overføre kontrollen til noget kode, der ligger et andet sted, koster noget. Derfor har vi fjernet en del funktionskald i koden og implementet det inline i stedet. Derudover har vi kigget på at optimere biblioteksrutiner i Javascripts standardbibliotek, der opererer på tal, strenge og datoer,« siger Mads Ager.

Han kan ikke sætte tal på, hvor store forbedringer V8-teamet forventer på performanceområdet i næste version af Chrome.

»Det er svært at sige på forhånd, hvor store forbedringer vi kan komme op med fremover, men det er vores erklærede hensigt at blive ved med at forbedre Javascript-performance. Vi er på ingen måde færdige endnu,« siger Mads Ager.

Send Tweet
Udskriv

IT-job & karriere

  • Se alle it-job
  • Importer din kompetenceprofil fra LinkedIn
Java udviklere – Web-frontend
Udgivet 16. jun 2011 14.21
Java udviklere – backend – gerne med Oracle erfaring
Udgivet 16. jun 2011 14.38
Java-backender med flair for frontend søges
Udgivet 11. jan 11.02
Java J2EE udvikler ( J2EE )
Udgivet 23. nov 2011 13.43

Kommentarer (2)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Michael Schade 26. maj. 2009 - 21.43
 
?

Så i satte en profiler på javascript og så hvor der var spildtid I kunne korrigere?

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Erik Corry 27. maj. 2009 - 09.12
 
Profiler

Ja, der er en profiler indbygget i V8.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Teknologirådet reddet: Fortsætter i ændret konstruktion

Udgivet 10. feb 11.32Opdateret 10. feb 11.32

Version2 tester: Her kan du fare vild i Windows 8

Udgivet 10. feb 10.44Opdateret 10. feb 11.04

Rygte: Google snart klar med Dropbox-konkurrent

Udgivet 10. feb 10.19Opdateret 10. feb 10.19

Ny blog stiller skarpt på juraen i it-kontrakter

Udgivet 10. feb 10.00Opdateret 10. feb 10.15

Windows 8 Consumer Preview klar til download 29. februar

Udgivet 10. feb 9.49Opdateret 10. feb 10.24
Flere it-nyheder »
Få it-nyheder og blogs hver dag med Version2's nyhedsbrev.

Seneste debat

  1. Er it-skandalerne kontrakternes skyld?

    3 comments.
    Last update 4 minutter 17 sekunder
    Skrevet af Johnnie Hougaard Nielsen
  2. ACTA er i orden!

    52 comments.
    Last update 5 minutter 59 sekunder
    Skrevet af Mads Randstoft
  3. Stop SOPA, PIPA, ACTA, TPP og alle dem der kommer efter

    54 comments.
    Last update 8 minutter 18 sekunder
    Skrevet af Jarle Knudsen
  4. Konklusion af Polsag-review fra 2009: Elendig kode hånd i hånd med elendig kontrakt

    13 comments.
    Last update 8 minutter 25 sekunder
    Skrevet af Jimmy Frydkær Dürr
  5. Microsoft frigiver Android-version af OneNote

    7 comments.
    Last update 51 minutter 43 sekunder
    Skrevet af Thomas Bundgaard
  6. Derfor bliver dårlige it-projekter ikke stoppet i tide

    3 comments.
    Last update 1 time 4 minutter
    Skrevet af Kasper Jørgensen
  7. 4 gode sikkerhedsråd: Sådan gør du firma-pc'en vinterferieklar

    5 comments.
    Last update 1 time 17 minutter
    Skrevet af Thomas Vestergaard
  8. XBMC på fit-PC3

    19 comments.
    Last update 1 time 19 minutter
    Skrevet af John Knuhtsen
Mere debat »

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Digitaliseringsstyrelsen
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Lion
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu 11.10
  • Virtualisering
  • Windows 8
  • Windows Phone 7
  • iOS 5
  • iPhone 4S

Tjenester

  • Android-app
  • iPhone-app
  • RSS-feeds
Følg @version2dk
Få it-nyheder og blogs hver dag med Version2's nyhedsbrev.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Skelbækgade 4 1717 København V
  • Tlf. work 33265300