Skip to main content
Log in

Comparative performance analysis of calling context profiling data structures

  • Original Article
  • Published:
International Journal of System Assurance Engineering and Management Aims and scope Submit manuscript

Abstract

Calling context profiling has proved out to be extremely useful in program understanding and optimization. Calling contexts can be organized in several ways, such as Dynamic Call Tree (DCT), Calling Context Tree (CCT), Hot Calling Context Tree (HCCT), Approximate Calling Context Tree (ACCT) and Calling Context Uptree (CCU). This paper conducts a comparative performance analysis on all major calling context data structures using the evaluation of a set of dynamic cohesion and coupling metrics at package, class and method levels on a set of open source java applications. The results imply that DCT, CCT and CCU are all similar in metric accuracy but vary in time and space requirements. ACCT, while incurring least time and space overhead, generates highly inaccurate and misleading results. The performance of HCCT is highly dependent on a predetermined hot-context threshold value. It was concluded that CCT outperforms others in comprehensive representation of inter-procedural control flow and collection of dynamic metrics for a program, in terms of both time–space overhead and accuracy.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21

Similar content being viewed by others

Notes

  1. http://commons.apache.org/proper/commons-bcel/.

  2. See Footnote 1.

  3. https://netbeans.org/downloads/7.1/.

  4. http://jreepad.sourceforge.net/.

  5. http://ekit.sourceforge.net/.

  6. www.spec.org/jvm2008/.

  7. See Footnote 6.

  8. http://java2html.sourceforge.net/.

  9. http://sourceforge.net/projects/javacaltools/.

  10. http://antichess.sourceforge.net/.

References

  • [AC]Antichess: http://antichess.sourceforge.net/. Accessed Oct 2014

  • [BC]BCEL: http://commons.apache.org/proper/commons-bcel/. Accessed Oct 2014

  • [EK] Ekit (Java HTML Editor): http://ekit.sourceforge.net/. Accessed Oct 2014

  • [JC] JavaCalendarPanel: http://sourceforge.net/projects/javacaltools/. Accessed Oct 2014

  • [JH] Java2Html: http://java2html.sourceforge.net/. Accessed Oct 2014

  • [JR] Jreepad: http://jreepad.sourceforge.net/. Accessed Oct 2014

  • [NB]NetBeans IDE 7.1: https://netbeans.org/downloads/7.1/. Accessed Oct 2014

  • [SP] SPECjvm2008 Benchmark Suite: www.spec.org/jvm2008/. Accessed Oct 2014

  • Ammons G, Ball T, Larus JR (1997) Exploiting hardware performance counters with flow and context sensitive profiling. Proc ACM Sigplan Conf Program Lang Design Implement 32(5):85–96. doi:10.1145/258915.258924

    Google Scholar 

  • Arnold M, Ryder BG (2001) A framework for reducing the cost of instrumented code. ACM Sigplan Not 36(5):168–179. doi:10.1145/378795.378832

    Article  Google Scholar 

  • Arnold M, Sweeney PF (2000) Approximating the calling context tree via sampling. IBM TJ Watson Research Center, Yorktown Heights, New York, US

    Google Scholar 

  • Ausiello G, Demetrescu C, Finocchi I, Firmani D (2012) k-Calling context profiling. ACM Sigplan Not 47(10):867–878. doi:10.1145/2384616.2384679

    Article  Google Scholar 

  • Bernat AR, Miller BP (2004) Incremental call-path profiling. Technical report, University of Wisconsin. ISBN: 1-59593-167-8. doi:10.1145/1088149.1088161

  • Binder W, Ansaloni D, Villazón A, Moret P (2009) Parallelizing calling context profiling in virtual machines on multicores. In: Proceedings of the 7th international conference on principles and practice of programming in java. ACM, pp 111–120. doi:10.1145/1596655.1596672

  • Bond MD, McKinley KS (2007) Probabilistic calling context. ACM Sigplan Not 42(10):97–112. doi:10.1145/1297027.1297035

    Article  Google Scholar 

  • Bond MD, Baker GZ, Guyer SZ (2010) Breadcrumbs: efficient context sensitivity for dynamic bug detection analyses. ACM Sigplan Not 45(6):13–24. doi:10.1145/1806596.1806599

    Article  Google Scholar 

  • Chang PP, Mahlke SA, Chen WY, Hwu WMW (1992) Profile-guided automatic inline expansion for C programs. Softw Pract Exp 22(5):349–369. doi:10.1002/spe.4380220502

    Article  Google Scholar 

  • D’Elia DC, Demetrescu C, Finocchi I (2011) Mining hot calling contexts in small space. ACM Sigplan Not 46(6):516–527. doi:10.1145/1993498.1993559

    Article  Google Scholar 

  • Feng HH, Kolesnikov OM, Fogla P, Lee W, Gong W (2003) Anomaly detection using call stack information. In: IEEE symposium on security and privacy, pp 62–75. doi:10.1109/SECPRI.2003.1199328

  • Froyd N, Mellor-Crummey J, Fowler R (2005) Low-overhead call path profiling of unmodified, optimized code. In: Proceedings of the 19th annual international conference on supercomputing, pp 81–90. doi:10.1145/1088149.1088161

  • Graham SL, Kessler PB, Mckusick MK (1982) Gprof: a call graph execution profiler. ACM Sigplan Not 17(6):120–126. doi:10.1145/989393.989401

    Article  Google Scholar 

  • Hall RJ, Goldberg AJ (1993) Call path profiling of monotonic program resources in UNIX. In: Proceedings of the USENIX summer 1993 technical conference on summer technical conference, USENIX Association

  • Hirzel M, Chilimbi T (2001) Bursty tracing: a framework for low-overhead temporal profiling. In: 4th ACM workshop on feedback-directed and dynamic optimization (FDDO-4), pp 117–126

  • Huang J, Bond MD (2013) Efficient context-sensitive dynamic analysis via calling context uptrees. In: Proceedings of the 2013 ACM SIGPLAN international conference on object oriented programming systems languages and applications (OOPSLA’13). doi:10.1145/2509136.2509510

  • Liblit B, Aiken A, Zheng AX, Jordan MI (2003) Bug isolation via remote program sampling. ACM Sigplan Not 38(5):141–154. doi:10.1145/781131.781148

    Article  Google Scholar 

  • Meetei MZ, Goel A, Wasan SK (2011) Observability using aspect-oriented programming for OO software testing. Int J Syst Assur Eng Manag 2(2):85–96. doi:10.1007/s13198-011-0066-5

    Article  Google Scholar 

  • Melski D, Reps T (1999) Interprocedural path profiling. In: Proceedings of the 8th international conference on compiler construction, held as part of the European joint conferences on the theory and practice of software, ETAPS’99 (CC ‘99), pp 47–62. doi:10.1007/978-3-540-49051-7_4

  • Moret P, Binder W, Ansaloni D, Villazón A (2009) Visualizing calling context profiles with ring charts. In: 5th IEEE international workshop on visualizing software for understanding and analysis, 2009. VISSOFT 2009, pp 33–36. doi:10.1002/spe.v40:9

  • Moret P, Binder W, Villazón A, Ansaloni D (2010) Exploring large profiles with calling context ring charts. In: Proceedings of the first joint WOSP/SIPEW international conference on performance engineering, pp 63–68. doi:10.1145/1712605.1712617

  • Nethercote N, Seward J (2007) Valgrind: a framework for heavyweight dynamic binary instrumentation. ACM Sigplan Not 42(6):89–100. doi:10.1145/1250734.1250746

    Article  Google Scholar 

  • Pavlopoulou C, Young M (1999) Residual test coverage monitoring. In: Proceedings of the 21st international conference on software engineering, pp 277–284. doi:10.1145/302405.302637

  • Ponder C, Fateman RJ (1988) Inaccuracies in program profilers. Softw Pract Exp 18(5):459–467. doi:10.1002/spe.4380180506

    Article  Google Scholar 

  • Spivey JM (2004) Fast, accurate call graph profiling. Softw Pract Exp 34(3):249–264. doi:10.1002/spe.562

    Article  Google Scholar 

  • Sumner WN, Zheng Y, Weeratunge D, Zhang X (2012) Precise calling context encoding. IEEE Trans Softw Eng 38(5):1160–1177. doi:10.1109/TSE.2011.70

    Article  Google Scholar 

  • Vaswani K, Nori AV, Chilimbi TM (2007) Preferential path profiling: compactly numbering interesting paths. ACM Sigplan Not 42(1):351–362. doi:10.1145/1190216.1190268

    Article  MATH  Google Scholar 

  • Whaley J (2000). A portable sampling-based profiler for Java virtual machines. In: Proceedings of the ACM 2000 conference on Java Grande, pp 78–87. doi:10.1145/337449.337483

  • Zhuang X, Serrano MJ, Cain HW, Choi JD (2006) Accurate, efficient, and adaptive calling context profiling. ACM Sigplan Not 41(6):263–271. doi:10.1145/1133981.1134012

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Paramvir Singh.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Yadav, P., Singh, P. Comparative performance analysis of calling context profiling data structures. Int J Syst Assur Eng Manag 8, 135–150 (2017). https://doi.org/10.1007/s13198-016-0447-x

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13198-016-0447-x

Keywords

Navigation