Facebook heeft diverse nieuwe technologieën open source gemaakt, waarvan het hoopt dat de webbrowsers deze gaan adopteren. Met de technologieën wil het bedrijf de prestaties van web-gebaseerde applicaties verbeteren.
Vlad Djeric van het browser engineering team van Facebook zei tijdens een presentatie dat de slechte prestaties van web-gebaseerde apps vaak goed te merken is voor eindgebruikers, schrijft Silicon Angle. Sommige gebruikers valt het bijvoorbeeld op dat de website van Facebook trager laadt dan de mobiele applicaties, ook al heeft de web-app veel minder code.
Oorzaken
Volgens Djeric zijn daar diverse redenen voor. Meest belangrijk is echter dat webbrowsers geen grote JavaScript codebases ondersteunen en dat browsers geen toegang hebben tot belangrijke “systeem-level” API’s die nodig zijn om apps te bouwen die beter presteren.
“In vergelijking met machine-code heeft JavaScript vaak last van parsing-, compilatie-, en runtime just-in-time (JIT) optimalisatie-overheads”, aldus Djeric. “Daarnaast betekent laden van JavaScript tegenwoordig dat er gewacht moet worden op netwerkreizen op het kritieke pad of op browser HTTP-caches die niet betrouwbaar meeschalen met tientallen gelijktijdige resource-verzoeken bij het begin van het laden van een pagina.”
Web-API’s hebben met name het probleem dat ze vaak veel minder krachtig zijn dan de native API’s die in mobiele apps gebruikt worden.
Open source
Om de problemen te verhelpen, heeft Facebook diverse open source-technologieën ontwikkeld. Het bedrijf moedigt makers van browsers nu aan om deze te adopteren in hun codebases. Het gaat onder meer om de “isInputPending() API”, die webbrowsers in staat stelt om JavaScript-taken efficiënter af te handelen. Een andere technologie heet “retired instruction counts”, en moet het testen van de prestaties van de browser verbeteren.
Ook ontwikkelde het team een nieuwe “JavaScript Self-Profiling API”, die geïmplementeerd is in de open source Chromium-browser. Dat is waar Google Chrome op gebaseerd is. De API helpt bij het identificeren van bottlenecks in internetverkeer.
Tot slot is het bedrijf een samenwerking begonnen met de Mozilla Foundation – die helpt bij de ontwikkeling van de Firefox-browser – om een experimentele “BinAST binary encoding format for JavaScript” te ontwikkelen. Dat helpt bij het efficiënter parsen van JavaScript-code.