Abstract
Code profilers are used to identify execution bottlenecks and understand the cause of a slowdown. Execution sampling is a monitoring technique commonly employed by code profilers because of its low impact on execution. Regularly sampling the execution of an application estimates the amount of time the interpreter, hardware or software, spent in each method execution time. Nevertheless, this execution time estimation is highly sensitive to the execution environment, making it non reproductive, non-deterministic and not comparable across platforms.
On our platform, we have observed that the number of messages sent per second remains within tight (±7%) bounds across a basket of 16 applications. Using principally the Pharo platform for experimentation, we show that such a proxy is stable, reproducible over multiple executions, profiles are comparable, even when obtained in different execution contexts. We have produced Compteur, a new code profiler that does not suffer from execution sampling limitations and have used it to extend the SUnit testing framework for execution comparison.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Ammons, G., Ball, T., Larus, J.R.: Exploiting hardware performance counters with flow and context sensitive profiling. In: Proceedings of PLDI 1997, pp. 85–96. ACM, New York (1997)
Robert, G.: Atkinson. Hurricane: An optimizing compiler for Smalltalk. In: Proceedings OOPSLA 1986, pp. 151–158. ACM, New York (1986)
Baskiyar, S.: Efficient execution of pure object-oriented programs by follow-up compilation. Computing 69, 273–289 (2002)
Bergel, A., Bañados, F.B., Robbes, R., Röthlisberger, D.: Spy: A flexible code profiling framework. In: Smalltalks (2010) (to appear)
Bergel, A., Robbes, R., Binder, W.: Visualizing dynamic metrics with profiling blueprints. In: Proceedings of TOOLS EUROPE 2010, pp. 291–309. Springer, Heidelberg (2010)
Camesi, A., Hulaas, J., Binder, W.: Continuous bytecode instruction counting for cpu consumption estimation. In: Proceedings of the 3rd International Conference on the Quantitative Evaluation of Systems, pp. 19–30. IEEE, Los Alamitos (2006)
Diwan, A., Lee, H., Grunwald, D.: Energy consumption and garbage collection in low-powered computing. Cu-cs-930-02, University of Colorado (2002)
Dmitriev, M.: Profiling java applications using code hotswapping and dynamic call graph revelation. In: Proceedings of the Fourth International Workshop on Software and Performance, pp. 139–150. ACM, New York (2004)
Ducasse, S., Nierstrasz, O., Schärli, N., Wuyts, R., Black, A.P.: Traits: A mechanism for fine-grained reuse. TOPLAS 28(2), 331–388 (2006)
Ducasse, S., Pollet, D., Bergel, A., Cassou, D.: Reusing and composing tests with traits. In: Oriol, M., Meyer, B. (eds.) TOOLS EUROPE 2009. Lecture Notes in Business Information Processing, vol. 33, pp. 252–271. Springer, Heidelberg (2009)
Freedman, D., Pisani, R., Purves, R.: Statistics, 3rd edn. W. W. Norton & Company, New York (1997)
Gupta, A., Hwu, W.-M.W.: Xprof: profiling the execution of X Window programs. In: Proceedings of Joint International Conference on Measurement and Modeling of Computer Systems, SIGMETRICS 1992/PERFORMANCE 1992, pp. 253–254. ACM, New York (1992)
Järvelin, K., Kekäläinen, J.: Cumulated gain-based evaluation of ir techniques. ACM Trans. Inf. Syst. 20(4), 422–446 (2002)
Johnson, R.: TS: An optimizing compiler for Smalltalk. In: Proceedings of OOPSLA 1988, pp. 18–26. ACM, New York (1988)
Kleinrock, L., Muntz, R.R.: Processor sharing queueing models of mixed scheduling disciplines for time shared system. J. ACM 19(3), 464–482 (1972)
Mann, P.S.: Introductory Statistics. Wiley, Chichester (2006)
Martin, R.C.: Agile Software Development. Principles, Patterns, and Practices. Prentice-Hall, Englewood Cliffs (2002)
Meyer, M., Gîrba, T., Lungu, M.: Mondrian: An agile visualization framework. In: Proceedings of Symposium on Software Visualization (SoftVis 2006), pp. 135–144. ACM, New York (2006)
Miranda, E.: Brouhaha — A portable Smalltalk interpreter. In: Proceedings of OOPSLA 1987, pp. 354–365. ACM, New York (1987)
Mytkowicz, T., Diwan, A., Hauswirth, M., Sweeney, P.F.: Producing wrong data without doing anything obviously wrong! In. In: Proceeding of the 14th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2009, pp. 265–276. ACM, New York (2009)
Mytkowicz, T., Diwan, A., Hauswirth, M., Sweeney, P.F.: Evaluating the accuracy of java profilers. In: Proceedings of PLDI 2010, pp. 187–197. ACM, New York (2010)
Mytkowicz, T., Diwan, A., Bradley, E.: Computers Are Dynamical Systems. Chaos 19, 033124 (2009)
Dain Samples, A., Ungar, D., Hilfinger, P.: SOAR: Smalltalk without bytecodes. In: Proceedings of OOPSLA 1986, pp. 107–118. ACM, New York (1986)
Tanter, É.: Execution levels for aspect-oriented programming. In: Proceedings of AOSD 2010, pp. 37–48. ACM, New York (2010)
Ungar, D., Patterson, D.: Smalltalk-80: Bits of History, Words of Advice Berkeley Smalltalk: Who Knows Where the Time Goes? In: Smalltalk-80: Bits of History, Words of Advice, pp. 189–206. Addison-Wesley, Reading (1983)
Yu, J., Yang, J., Chen, S., Luo, Y., Bhuyan, L.N.: Enhancing network processor simulation speed with statistical input sampling. In: Conte, T., Navarro, N., Hwu, W.-m.W., Valero, M., Ungerer, T. (eds.) HiPEAC 2005. LNCS, vol. 3793, pp. 68–83. Springer, Heidelberg (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bergel, A. (2011). Counting Messages as a Proxy for Average Execution Time in Pharo. In: Mezini, M. (eds) ECOOP 2011 – Object-Oriented Programming. ECOOP 2011. Lecture Notes in Computer Science, vol 6813. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-22655-7_25
Download citation
DOI: https://doi.org/10.1007/978-3-642-22655-7_25
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-22654-0
Online ISBN: 978-3-642-22655-7
eBook Packages: Computer ScienceComputer Science (R0)