Show simple item record

dc.contributor.advisorRamanathan, Murali Krishna
dc.contributor.authorMudduluru, Rashmi
dc.date.accessioned2018-07-20T16:49:00Z
dc.date.accessioned2018-07-31T04:39:22Z
dc.date.available2018-07-20T16:49:00Z
dc.date.available2018-07-31T04:39:22Z
dc.date.issued2018-07-20
dc.date.submitted2015
dc.identifier.urihttps://etd.iisc.ac.in/handle/2005/3874
dc.identifier.abstracthttp://etd.iisc.ac.in/static/etd/abstracts/4746/G27275-Abs.pdfen_US
dc.description.abstractProfiling techniques to detect performance bugs in applications are usually customized to detect a specific bug pattern and involve significant engineering effort. In spite of this effort, many techniques either suffer from high runtime overheads or are imprecise. This necessitates the design of a common and efficient instrumentation substrate that profiles the flow of objects during an execution. Designing such a substrate which enables profile generation precisely with low overhead is non-trivial due to the number of objects created, accessed and paths traversed by them in an execution. In this thesis, we design and implement an efficient instrumentation substrate that efficiently generates object flow profiles for Java programs, without requiring any modifications to the underlying virtual machine. We achieve this by applying Ball-Larus numbering on a specialized hy-brid ow graph (hfg). The hfg path profiles that are collected during runtime are post-processed o ine to derive the object flow profiles. We extend the design to handle inter-procedural objec flows by constructing flow summaries for each method and incorporating them appropriately. We have implemented the substrate and validated its efficacy by applying it on programs from popular benchmark suites including dacapo and java-grande. The results demonstrate the scalability of our approach, which handles 0.2M to 0.55B object accesses with an average runtime overhead of 8x. We also demonstrate the effectiveness of the generated profiles by implementing three client analyses that consume the profiles to detect performance bugs. The analyses are able to detect 38 performance bugs which when refactored result in signi cant performance gains (up to 30%) in running times.en_US
dc.language.isoen_USen_US
dc.relation.ispartofseriesG27275en_US
dc.subjectFlow Profiles for Java Programsen_US
dc.subjectHybrid Flow Graphen_US
dc.subjectObject Flow Profilingen_US
dc.subjectHybrid Flow Graph (HFG)en_US
dc.subjectProgram Analysisen_US
dc.subjectObject-oriented Programmingen_US
dc.subjectMemory Managementen_US
dc.subject.classificationComputer Scienceen_US
dc.titleEfficient Instrumentation for Object Flow Profilingen_US
dc.typeThesisen_US
dc.degree.nameMSc Enggen_US
dc.degree.levelMastersen_US
dc.degree.disciplineFaculty of Engineeringen_US


Files in this item

This item appears in the following Collection(s)

Show simple item record