Jiang, ZhenMingLi, Yangguang2019-11-222019-11-222019-072019-11-22http://hdl.handle.net/10315/36759Python is nowadays one of the most popular programming languages. It has been used extensively for rapid prototyping and developing real-world applications. Unfortunately, very few empirical studies were conducted on Python-based applications. There are various Python implementations (e.g., CPython, and PyPy). Among them, PyPy is generally the fastest due to PyPy's efficient tracing-based Just-in-Time (JIT) compiler. Understanding how PyPy has been evolved and the rationale behind its high performance would be very useful for Python application developers and researchers. In the first part of the thesis, we conducted a replication study on mining the historical code changes' of PyPy and compared our findings against Python-based applications from five other application domains. In the second part, we conducted a detailed empirical study on the performance impact of the JIT configuration settings of PyPy. The findings and the techniques in this thesis will be useful for Python application developers and researchers.Author owns copyright, except where explicitly noted. Please contact the author directly with licensing requests.Computer engineeringUnderstanding and Optimizing Python-Based Applications - A Case Study on PYPYElectronic Thesis or Dissertation2019-11-22Software EvolutionPerformance OptimizationJust-in-Time compilationSoftware ConfigurationPerformance Testing