Fine-Grained Library Customization

Code bloat widely exists in production-run software. Left untackled, it not only degrades software performance but also increases its attack surface. In this work, we conduct a case study to understand this issue in statically linked libraries. To be specific, we analyze midilib, a software package enclosing statically linked libraries. We show that it is possible to leverage dependence analysis to trim the resultless code statements re- siding in a target library. With this observation, we believe it is possible to build a tool to automatically cut off code pertaining to resultless operations.

[1]  Atanas Rountev,et al.  Detecting inefficiently-used containers to avoid bloat , 2010, PLDI '10.

[2]  Peng Liu,et al.  JRed: Program Customization and Bloatware Mitigation Based on Static Analysis , 2016, 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC).

[3]  Guoqing Xu,et al.  Cachetor: detecting cacheable data to remove bloat , 2013, ESEC/FSE 2013.

[4]  Barbara G. Ryder,et al.  A scalable technique for characterizing the usage of temporaries in framework-intensive Java applications , 2008, SIGSOFT '08/FSE-16.

[5]  Peng Liu,et al.  A Preliminary Analysis and Case Study of Feature-Based Software Customization (Extended Abstract) , 2015, 2015 IEEE International Conference on Software Quality, Reliability and Security - Companion.

[6]  Lu Fang,et al.  PerfBlower: Quickly Detecting Memory-Related Performance Problems via Amplification , 2015, ECOOP.

[7]  Peng Liu,et al.  Feature-Based Software Customization: Preliminary Analysis, Formalization, and Methods , 2016, 2016 IEEE 17th International Symposium on High Assurance Systems Engineering (HASE).

[8]  Shan Lu,et al.  Production-run software failure diagnosis via hardware performance counters , 2013, ASPLOS '13.

[9]  Shan Lu,et al.  Performance Diagnosis for Inefficient Loops , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[10]  Zhuoqing Morley Mao,et al.  An Initial Investigation of Protocol Customization , 2017, FEAST@CCS.

[11]  Somesh Jha,et al.  Cimplifier: automatically debloating containers , 2017, ESEC/SIGSOFT FSE.

[12]  Matthew Arnold,et al.  Go with the flow: profiling copies to find runtime bloat , 2009, PLDI '09.

[13]  Aravind Prakash,et al.  A Multi-OS Cross-Layer Study of Bloating in User Programs, Kernel and Managed Execution Environments , 2017, FEAST@CCS.

[14]  Guoqing Xu,et al.  Finding reusable data structures , 2012, OOPSLA '12.

[15]  Somesh Jha,et al.  New Directions for Container Debloating , 2017, FEAST@CCS.