Debugging and Optimizing Code in a world of Software Frameworks by Dr Abhilash Jindal, CTO Mobile Enerlytics

Location: CSA Seminar Hall (Room No. 254, First Floor)

Department of Computer Science and Automation
Department Seminar

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

Scroll Up