PowerStation: automatically detecting and fixing inefficiencies of database-backed web applications in IDE

PowerStation: automatically detecting and fixing inefficiencies of database-backed web applications in IDE
复制标题

DOI:
10.1145/3236024.3264589
复制
发表时间:
2018-10
期刊:
Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
影响因子:
--
通讯作者:
Junwen Yang;Cong Yan;Pranav Subramaniam;Shan Lu;Alvin Cheung
Junwen Yang;Cong Yan;Pranav Subramaniam;Shan Lu;Alvin Cheung
中科院分区:
其他
文献类型:
--
作者:
Junwen Yang;Cong Yan;Pranav Subramaniam;Shan Lu;Alvin Cheung

文献摘要

相似文献

现代web应用程序是使用无数软件组件构建的,并且它们中的每一个都暴露不同的编程模型(例如,以命令式语言表达的应用逻辑、使用声明性SQL表达的数据库查询)。为了提高程序员的生产力,已经开发了对象关系映射(ORM)框架,以允许开发人员以面向对象的方式构建Web应用程序。尽管有这样的框架,以前的工作已经发现,开发人员仍然挣扎在开发性能基于ORM的Web应用程序。本文介绍了PowerStation,一个RubyMine IDE插件,用于优化使用Ruby on Rails ORM开发的Web应用程序。使用自动静态分析,PowerStation检测与ORM相关的效率低下问题,并向开发人员提出修复建议。我们使用12个实际应用程序进行的评估表明,PowerStation可以自动检测其中的1221个性能问题。关于使用PowerStation的教程可以在https://youtu.be/rAV8CGuSj6k上找到。
Modern web applications are built using a myriad of software components, and each of them exposes different programming models (e.g., application logic expressed in an imperative language, database queries expressed using declarative SQL). To improve programmer productivity, Object Relational Mapping (ORM) frameworks have been developed to allow developers build web applications in an object-oriented manner. Despite such frameworks, prior work has found that developers still struggle in developing performant ORM-based web applications. This paper presents PowerStation, a RubyMine IDE plugin for optimizing web applications developed using the Ruby on Rails ORM. Using automated static analysis, PowerStation detects ORM-related inefficiency problems and suggests fixes to developers. Our evaluation using 12 real-world applications shows that PowerStation can automatically detects 1221 performance issues across them. A tutorial on using PowerStation can be found at https://youtu.be/rAV8CGuSj6k.