Blogs (1) >>
ASE 2019
Sun 10 - Fri 15 November 2019 San Diego, California, United States
Wed 13 Nov 2019 16:20 - 16:40 at Hillcrest - Performance Chair(s): Tim Menzies

Modern web applications rely heavily on databases to query and update information. To ease the development efforts, Object Relational Mapping (ORM) frameworks provide an abstraction for developers to manage databases by writing in the same Object-Oriented programming languages. Prior studies have shown that there are various types of performance issues caused by inefficient accesses to databases via different ORM frameworks (e.g., Hibernate and ActiveRecord). However, it is not clear whether the reported performance anti-patterns (common performance issues) can be generalizable across various frameworks. In particular, there is no study focusing on detecting performance issues for applications written in PHP, which is the choice of programming languages for the majority (79%) of web applications. In this experience paper, we detail our process on conducting performance-aware refactoring of an industrial web application written in Laravel, the most popular web framework in PHP. We have derived a complete catalog of 17 performance anti-patterns based on prior research and our experimentation. We have found that some of the reported anti-patterns and refactoring techniques are framework or programming language specific, whereas others are general. The performance impact of the anti-pattern instances are highly dependent on the actual usage context (workload and database settings). When communicating the performance differences before and after refactoring, the results of the complex statistical analysis may be sometimes confusing. Instead, developers usually prefer more intuitive measures like percentage improvement. Experiments show that our refactoring techniques can achieve up to 1319% and 1417% times speedup for the industrial and the open source application under various scenarios.

Wed 13 Nov

16:00 - 17:50: Papers - Performance at Hillcrest
Chair(s): Tim MenziesNorth Carolina State University
ase-2019-papers16:00 - 16:20
Accurate Modeling of Performance Histories for Evolving Software Systems
Stefan MühlbauerBauhaus-University Weimar, Sven ApelSaarland University, Norbert SiegmundBauhaus-University Weimar
ase-2019-papers16:20 - 16:40
An Industrial Experience Report on Performance-Aware Refactoring on a Database-centric Web Application
Boyuan ChenYork University, Zhen Ming (Jack) JiangYork University, Paul MatosCopywell Inc., Michael LacariaCopywell Inc.
Authorizer link Pre-print
ase-2019-papers16:40 - 17:00
An Experience Report of Generating Load Tests Using Log-recovered Workloads at Varying Granularities of User Behaviour
Jinfu ChenJiangsu University, Weiyi (Ian) ShangConcordia University, Canada, Ahmed E. HassanQueen's University, Yong WangAlibaba Group, Jiangbin LinAlibaba Group
ase-2019-papers17:00 - 17:10
How Do API Selections Affect the Runtime Performance of Data Analytics Tasks?
Yida TaoShenzhen University, Shan TangShenzhen University, Yepang LiuSouthern University of Science and Technology, Zhiwu XuShenzhen University, Shengchao QinUniversity of Teesside
ase-2019-papers17:10 - 17:20
Demystifying Application Performance Management Libraries for Android
Yutian TangThe Hong Kong Polytechnic University, Zhan XianThe Hong Kong Polytechnic University, Hao ZhouThe Hong Kong Polytechnic University, Xiapu LuoThe Hong Kong Polytechnic University, Zhou XuWuhan University, Yajin ZhouZhejiang University, Qiben YanMichigan State University
ase-2019-Demonstrations17:20 - 17:30
PeASS: A Tool for Identifying Performance Changes at Code Level
David Georg ReicheltUniversität Leipzig, Stefan KühneUniversität Leipzig, Wilhelm HasselbringKiel University
Pre-print Media Attached File Attached
ase-2019-papers17:30 - 17:50
ReduKtor: How We Stopped Worrying About Bugs in Kotlin Compiler
Daniil StepanovSaint Petersburg Polytechnic University, Marat AkhinSaint Petersburg Polytechnic University / JetBrains Research, Mikhail BelyaevSaint Petersburg Polytechnic University