Analysis and optimization of engines for dynamically typed languages
Document typeConference report
PublisherInstitute of Electrical and Electronics Engineers (IEEE)
Rights accessRestricted access - publisher's policy
Dynamically typed programming languages have become very popular in the recent years. These languages ease the task of the programmer but introduce significant overheads since assumptions about the types of variables have to be constantly validated at run time. Java Script is a widely used dynamically typed language that has gained significant popularity in recent years. In this paper, we provide a detailed analysis of the two main sources of overhead in the Java Script execution. The first one is the runtime overhead needed for dynamic compilation and housekeeping activities (i.e. Garbage collector, compilation, etc.). The second one is the additional checks and guards introduced by the dynamic nature of Java Script. Then, we propose three new HW/SW optimizations that reduce this latter type of overhead. We show that these two types of overhead represent 35% and 25% respectively of the total execution time on average for a representative workload, and the proposed optimizations provide a 6% average speedup.
CitationDot, G., Martínez, A., Gonzalez, A. Analysis and optimization of engines for dynamically typed languages. A: International Symposium on Computer Architecture and High Performance Computing. "SBAC-PAD 2015: IEEE 27th International Symposium on Computer Architecture and High Performance Computing: 18-21 October 2015: Florianápolis, Brazil". Florianápolis: Institute of Electrical and Electronics Engineers (IEEE), 2015, p. 41-48.