Abstract:
Dynamic programming languages such as Python are becoming increasingly more popular, yet often show a significant performance slowdown compared to static languages such a...Show MoreMetadata
Abstract:
Dynamic programming languages such as Python are becoming increasingly more popular, yet often show a significant performance slowdown compared to static languages such as C. This paper provides a detailed quantitative analysis of the overhead in Python without and with just-in-time (JIT) compilation. The study identifies a new major source of overhead, C function calls, for the Python interpreter. Additionally, we study the interaction of the run-time with the underlying processor hardware and find that the performance of Python with JIT depends heavily on the cache hierarchy and memory system. We find that proper nursery sizing is necessary for each application to optimize the trade-off between cache performance and garbage collection overhead. Although our studies focuses on Python, we show that our key findings can also apply to other dynamic languages such as Javascript.
Date of Conference: 30 September 2018 - 02 October 2018
Date Added to IEEE Xplore: 13 December 2018
ISBN Information:
Keywords assist with retrieval of results and provide a means to discovering other relevant content. Learn more.
- IEEE Keywords
- Index Terms
- Smooth Function ,
- Memory System ,
- Static Analysis ,
- Function Calls ,
- Benchmark ,
- Major Features ,
- Python Programming ,
- Error Control ,
- Core Model ,
- Aspects Of Language ,
- Python Implementation ,
- Written Back ,
- Popular Language ,
- PC Values ,
- Memory Management ,
- Performance Overhead ,
- Benchmark Suite ,
- Cache Size ,
- Function Name ,
- Memory Parameter ,
- Cache Misses ,
- Memory Hierarchy ,
- Cycle Count
Keywords assist with retrieval of results and provide a means to discovering other relevant content. Learn more.
- IEEE Keywords
- Index Terms
- Smooth Function ,
- Memory System ,
- Static Analysis ,
- Function Calls ,
- Benchmark ,
- Major Features ,
- Python Programming ,
- Error Control ,
- Core Model ,
- Aspects Of Language ,
- Python Implementation ,
- Written Back ,
- Popular Language ,
- PC Values ,
- Memory Management ,
- Performance Overhead ,
- Benchmark Suite ,
- Cache Size ,
- Function Name ,
- Memory Parameter ,
- Cache Misses ,
- Memory Hierarchy ,
- Cycle Count