Department of Computer Science and Automation
Speaker : Dr Abhilash Jindal, CTO Mobile Enerlytics
Title : Debugging and Optimizing Code in a world of Software Frameworks
Date : Monday, June 10, 2019
Time : 10:00 AM
Venue : CSA Seminar Hall (Room No. 254, First Floor)
Modern programmers stand on “the shoulders of giant” software frameworks. The programmers are able to build complicated applications fairly quickly by just stringing together many intricate framework APIs. But, due to the limited understanding of underlying frameworks, programmers often make mistakes in using these APIs. Moreover, this limited understanding has made debugging software systems and improving their performance significantly harder.
In this talk, we first take a close look at wakelock APIs, a set of APIs for explicitly managing the power states of hardware components, that was introduced by the Android framework. I will present the complexity of correctly using wakelock APIs and present a taxonomy of most prevalent energy bugs in the Android ecosystem— sleep disorder bugs which arise from incorrect usage of wakelock APIs. I will then present KLOCK that makes use of a set of static analyses to systematically identify sleep-induced time bugs, a subclass of sleep disorder bugs.
In the second part, we study performance optimization in programming high-level framework APIs. The state of the art for finding general optimizations is through profiling that can help developers identify hotspots, i.e, method calls that contribute to a large portion of the resource consumption in their source code. In Android apps, the hotspots identified by the profiler are almost always framework API calls. Since developers did not author framework APIs, even after they are presented with the API hotspots, they typically do not have any guidance on how to proceed with the remaining optimization process: (1) Is there a more efficient way of using framework APIs to implement the same app task? (2) How to come up with more efficient implementation? To help developers tackle these challenges, we developed a new optimization methodology called differential profiling that automatically uncovers more efficient API usage by leveraging existing implementations of similar apps which are bountiful in the app marketplace.
Biography of the speaker
Abhilash Jindal received B.Tech. in Electrical Engineering from IIT Kanpur. He received his Ph.D. in Computer Science from Purdue University where he researched software-based approaches for extending mobile battery life. He has published papers in top system conferences including OSDI, ATC, Eurosys, Mobisys, Sigmetrics, and Mobicom. Currently, he is commercializing his research work serving as the CTO of Mobile Enerlytics, a silicon valley startup. His research interests include mobile systems, software engineering, and operating systems.
Host Faculty : Prof. Matthew Jacob