• 沒有找到結果。

The goal of this thesis is to establish a bridge to communicate application information from Dalvik virtual machine to a Linux user-space profiler. Moreover, methodologies mentioned in this thesis are not limited to Oprofile. The communication tunnel established by proposed modifications can also be used by other Linux user-space trace tools, such as strace or LTTng.

Furthermore, the techniques used in the Dalvik Instrumentation module, such as the hash replacement address, can be applied on other Java virtual machines to achieve register based machine styled profiling on stack machines.

Currently even though VARI profiler provides some source line level information, but this functionality is not integrated with those found in Oprofile. There are several ways to approach this issue, such as converting dex file‟s DWARF3 inspired debug_info_item [45]

into an ELF symbol file, or modifying oprofile‟s post processing tools to utilize dex disassembler to treat dex files as a symbol file.

As it is, VARI profiler provides vertical profiling capability on Android mobile systems, by bridging the profiling gap between the Dalvik virtual machine and Linux user and kernel space. This ability enables users to identify Java level bottlenecks and trace back to the point of origin in the Linux system library while introducing little overhead.

45

References

[1] G. Contreras and M. Martonosi, “Power prediction for Intel XScale® processors using performance monitoring unit events,” 2005, 221, ACM Press.

[2] “ARM - PMU management registers,” http://infocenter.arm.com/help/index.jsp?

topic=/com.arm.doc.ddi0388f/Bcgddibf.html.

[3] “Intel® Microarchitecture Codename Nehalem Performance Monitoring Unit Programming Guide (Nehalem Core PMU),” http://software.intel.com/en-us/articles/

intel-microarchitecture-codename-nehalem-performance-monitoring-unit-programming-guide/.

[4] “OProfile - A System Profiler for Linux (News),” http://oprofile.sourceforge.net/

news/.

[5] S. L. Graham, P. B. Kessler, and M. K. McKusick, “gprof,” ACM SIGPLAN Notices 39, 49 (2004).

[6] Google, “Google Performance Tools,” 2005, http://goog-perftools.sourceforge.net/.

[7] “maemo.org - maemo.org: Home of the Maemo community,” http://maemo.org/.

[8] “MeeGo,” https://meego.com/.

[9] “Android Developers,” http://developer.android.com/index.html.

[10] K. Paul and T. K. Kundu, “Android on Mobile Devices: An Energy Perspective,” in Computer and Information Technology, 2010 IEEE 10th International Conference on, pp. 2421–2426.

[11] “DalvikVM.com - Dalvik Virtual Machine insights,” http://www.dalvikvm.com/.

46

[12] Goole, “Using DDMS | Android Developers,” 2010, http://developer.android.com/

guide/developing/debugging/ddms.html.

[13] “logcat | Android Developers,” http://developer.android.com/guide/developing/tools/

logcat.html.

[14] “Traceview | Android Developers,” http://developer.android.com/guide/developing/

tools/traceview.html.

[15] “LTTng Project,” http://lttng.org/.

[16] “strace | Download strace software for free at SourceForge.net,” http://sourceforge.net/

projects/strace/.

[17] “ltrace,” http://ltrace.org/.

[18] “Opcodes | Android Developers,” http://developer.android.com/reference/dalvik/

bytecode/Opcodes.html.

[19] “Jikes RVM - Home,” http://jikesrvm.org/.

[20] L. Shannon and P. Chow, “Using reconfigurability to achieve real-time profiling for hardware/software codesign,” in Proceedings of the 2004 ACM/SIGDA 12th international symposium on Field programmable gate arrays, pp. 190–199, ACM, New York, NY, USA (2004).

[21] L. Batyuk, A.-D. Schmidt, H.-G. Schmidt, A. Camtepe, and S. Albayrak, “Developing and Benchmarking Native Linux Applications on Android,” in MobileWireless Middleware, Operating Systems, and Applications 7, J.-M. Bonnin, C. Giannelli, and T. Magedanz, Eds., pp. 381–392, Springer Berlin Heidelberg, Berlin, Heidelberg (2009).

[22] W. Binder, J. Hulaas, and P. Moret, “A Quantitative Evaluation of the Contribution of Native Code to Java Workloads,” in Workload Characterization, 2006 IEEE

47

International Symposium on, pp. 201–209 (2006).

[23] Sohail Khan, Shahryar Khan, Syed Hammad Khalid Banuri, Mohammad Nauman, and Masoom Alam, “Analysis of Dalvik Virtual Machine and Class Path Library,”

Technical Report, Institute of Management SciencesPeshawar, Pakistan (2009).

[24] Goolge, “Anatomy & Physiology of an Android - 2008 Google I/O Session Videos and Slides,” 2008, http://sites.google.com/site/io/anatomy--physiology-of-an-android.

[25] P. F. Sweeney, M. Hauswirth, B. Cahoon, P. Cheng, A. Diwan, D. Grove, and M.

Hind, “Using hardware performance monitors to understand the behavior of java applications,” in Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3, pp. 5–5, USENIX Association, Berkeley, CA, USA (2004).

[26] Chien-Wei Chang, Chun-Yu Lin, Chung-Ta King, Yi-Fan Chung, and Shau-Yin Tseng, “Implementation of JVM tool interface on Dalvik virtual machine,” in 2010 International Symposium on VLSI Design Automation and Test, pp. 143–146, IEEE.

[27] D. Nicolaescu and A. Veidenbaum, “Understanding and comparing the performance of optimized JVMs,” in Innovative Architecture for Future Generation High-Performance Processors and Systems, 2005, IEEE.

[28] Oracle, “JVM(TM) Tool Interface 1.0.38,” JVM Tool Interface, 2002, http://download.

oracle.com/javase/1.5.0/docs/guide/jvmti/jvmti.html.

[29] Oracle, “Java SE - Java Platform Debugger Architecture Home,” 2010, http://java.sun.

com/javase/technologies/core/toolsapis/jpda/.

[30] M. Hauswirth, P. F. Sweeney, A. Diwan, and M. Hind, “Vertical profiling:

understanding the behavior of object-priented applications,” SIGPLAN Not. 39, 251–269 (2004).

48

[31] H. Mousa and C. Krintz, “HPS: hybrid profiling support,” in 14th International Conference on Parallel Architectures and Compilation Techniques, 2005. pp. 38–47, IEEE.

[32] M. Hauswirth, A. Diwan, P. F. Sweeney, and M. C. Mozer, “Automating vertical profiling,” 2005, 281, ACM Press.

[33] H. Mousa, K. Doshi, T. Sherwood, and E. Ould-Ahmed-Vall, “VrtProf: Vertical Profiling for System Virtualization,” in 2010 43rd Hawaii International Conference on System Sciences, pp. 1–10, IEEE (2010).

[34] H. Mousa, C. Krintz, L. Youseff, and R. Wolski, “VIProf: Vertically Integrated Full-System Performance Profiler,” in Parallel and Distributed Processing Symposium, 2007. IEEE International, pp. 1–6.

[35] B. Alpern, M. Mergen, C. R. Attanasio, A. Cocchi, D. Lieber, S. Smith, T. Ngo, J. J.

Barton, S. F. Hummel, et al., “Implementing jalapeño in Java,” 1999, 314–324, ACM Press.

[36] F. T. Schneider, M. Payer, and T. R. Gross, “Online optimizations driven by hardware performance monitoring,” in ACM SIGPLAN Notices 42, pp. 373–382, ACM, New York, NY, USA (2007).

[37] J. Maebe, D. Buytaert, L. Eeckhout, and K. De Bosschere, “Javana: a system for building customized Java program analysis tools,” Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, 153–168 (2006).

[38] H. Inoue and T. Nakatani, “How a Java VM can get more from a hardware performance monitor,” SIGPLAN Not. 44, 137–154 (2009).

[39] R. Hyndman, “newtonscradle - Android app to model the physics of Newton‟s Cradle

49

- Google Project Hosting,” 2011, http://code.google.com/p/newtonscradle/.

[40] jserv, “0xbench - Comprehensive Benchmark Suite for Android - Google Project Hosting,” 2010, http://code.google.com/p/0xbench/.

[41] J. Dongarra, R. Wade, and P. McMahan, “Linpack Benchmark -- Java Version,”

http://www.netlib.org/benchmark/linpackjava/.

[42] R. Pozo and B. Miller, “Java SciMark 2.0,” http://math.nist.gov/scimark2/.

[43] “Dot- Graph Visualization Software,” http://www.graphviz.org/.

[44] “Gprof2Dot - jrfonseca - Convert profiling output to a dot graph. - José Fonseca‟s utilitities - Google Project Hosting,” http://code.google.com/p/jrfonseca/wiki/

Gprof2Dot.

[45] Google, “dalvik - Code and documentation from Android‟s VM team - Google Project Hosting,” 2011, http://code.google.com/p/dalvik/.

相關文件