Alexandria Digital Research Library

Optimizing JavaScript Engines for Modern-day Workloads

Author:
Kedlaya, Madhukar Nagaraja
Degree Grantor:
University of California, Santa Barbara. Computer Science
Degree Supervisor:
Ben Hardekopf
Place of Publication:
[Santa Barbara, Calif.]
Publisher:
University of California, Santa Barbara
Creation Date:
2015
Issued Date:
2015
Topics:
Computer science
Keywords:
JavaScript
Deoptimization
Type Specialization
Optimization
Genres:
Online resources and Dissertations, Academic
Dissertation:
Ph.D.--University of California, Santa Barbara, 2015
Description:

In modern times, we have seen tremendous increase in popularity and usage of web-based applications. Applications such as presentation software and word processors, which were traditionally considered desktop applications are being ported to the web by compiling them to JavaScript. Since JavaScript is the de facto language of the web, JavaScript engine performance significantly affects the overall web application experience. JavaScript, initially intended solely as a client-side scripting language for web browsers, is now being used to implement server-side web applications (node.js) that traditionally have been written in languages like Java. Web application developers expect "C"-like performance out of their applications. Thus, there is a need to reevaluate the optimization strategies implemented in the modern day engines.

Thesis statement: I propose that by using run-time and ahead-of-time profiling and type specialization techniques it is possible to improve the performance of JavaScript engines to cater to the needs of modern-day workloads. .

In this dissertation, we present an improved synergistic type specialization strategy for optimized JavaScript code execution, implemented on top of a research JavaScript engine called MuscalietJS. Our technique combines type feedback and type inference to reinforce and augment each other in a unique way. We then present a novel deoptimization strategy that enables type specialized code generation on top of typed, stack-based virtual machines like CLR. We also describe a server-side offline profiling technique to collect profile information for web application which helps client JavaScript engines (running in the browser) avoid deoptimizations and improve performance of the applications. Finally, we describe a technique to improve the performance of server-side JavaScript code by making use of intelligent profile caching and two new type stability heuristics.

Physical Description:
1 online resource (179 pages)
Format:
Text
Collection(s):
UCSB electronic theses and dissertations
ARK:
ark:/48907/f3t72h0m
ISBN:
9781339472133
Catalog System Number:
990046179820203776
Rights:
Inc.icon only.dark In Copyright
Copyright Holder:
Madhukar Nagaraja Kedlaya
File Description
Access: Public access
Kedlaya_ucsb_0035D_12836.pdf pdf (Portable Document Format)