Analysis and Optimization of Engines for Dynamically Typed Languages

  • Gem Dot Universitat Politècnica de Catalunya
  • Alejandro Martínez ARM
  • Antonio González Universitat Politècnica de Catalunya

Resumo


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.
Palavras-chave: Engines, Optimization, Benchmark testing, Dynamic compiler, Vehicle dynamics, Prototypes, Dynamic typed languages, Dynamic Compilation, Computer Architecture
Publicado
18/10/2015
DOT, Gem; MARTÍNEZ, Alejandro; GONZÁLEZ, Antonio. Analysis and Optimization of Engines for Dynamically Typed Languages. In: INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING (SBAC-PAD), 27. , 2015, Florianópolis/SC. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2015 . p. 41-48.