跳到主要內容

臺灣博碩士論文加值系統

(216.73.216.131) 您好!臺灣時間:2026/01/16 02:27
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

我願授權國圖
: 
twitterline
研究生:劉昇龍
研究生(外文):Sheng-Lung Liu
論文名稱:在虛擬化的Firefox OS平台之應用程式追蹤
論文名稱(外文):Application Tracing on Virtualized Firefox OS Platforms
指導教授:洪士灝洪士灝引用關係
指導教授(外文):Shih-Hao Hung
口試委員:徐慰中郭大維梁文耀涂嘉恆
口試委員(外文):Wei-Chung HsuTei-Wei KuoWilliam LiangChia-Heng Tu
口試日期:2014-07-22
學位類別:碩士
校院名稱:國立臺灣大學
系所名稱:資訊工程學研究所
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2014
畢業學年度:102
語文別:英文
論文頁數:31
中文關鍵詞:效能分析虛擬平台火狐作業系統應用程式追蹤
外文關鍵詞:program analysistracingprofiling toolsvirtual platformFirefox OS
相關次數:
  • 被引用被引用:0
  • 點閱點閱:311
  • 評分評分:
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
在現今的手持裝置上,一個複雜的應用軟體效能,會受到多種不同的
因素影響,像是作業系統的狀態,手持裝置的週邊,或是應用軟體自己本
身的演算法。好的應用軟體分析工具可以幫助開發者了解應用軟體的行為,並加以改善。然而現有的效能分析工具想要一次性做到全系統的剖析是很不容易的,更別說要分析不同程式語言之間的行為像是JavaScript引擎和JavaScript程式這種有中介軟體的程式語言。
在本篇論文裡,我們描述了一個創新並且對系統影響很小的方法,可以
在虛擬平台上靜態的插入程式碼後以取得中介軟體之上動態的事件,來改善我們之前的研究VPA。經由這樣的方式整合不同程式語言之間的效能數據並分析。
我們選擇用Firefox OS來做個案研究,我們在基於QEMU的Firefox OS模
擬器上實現追蹤JavaScript程式的效能分析工具,並且用實驗來驗證該方法對系統影響是很小的,在理論上該方法具有很大的彈性,可以很容易放到不同的中介軟體上達到同樣的效果。


On a modern mobile device, the performance of a complex application may depend on a combination of several factors including operating system events, I/O devices and the application itself. Profiling and program analysis tools can help developers observe the behavior of an application. However, doing a system-wide execution profile is difficult for traditional profiling tools as it requires an integrated
analysis of both kernel space and user space activities. The complexity of program analysis is even higher if application execution involves middleware like JavaScript engine or virtual machines.
In this thesis, we describe an innovative static instrumentation and dynamic trigger method, called Smart Event Tracer(SET) Annotation, which is based on our previous work VPA. SET Annotation enables the users not only collect a complete trace of system activities and performance data but also collect the user-defined events with a little instrumentation overhead. User can insert SET Annotation into
C/C++ program which is a popular programming language of developing middleware for JavaScript applications to get more profiling data.
We integrate the SET Annotation framework into the Firefox OS emulator to collect JavaScript functions information for profiling web-applications. Comparing to the Firefox OS build-in profiler, our framework can monitor application behavior more realistically and provide more information. The experimental results show that the instrusiveness with SET Annotation is very light weight and much smaller than a general way.


Acknowledgments ... i
中文摘要 ... ii
Abstrace ... iii
1 Introduction ... 1
1.1 Motivation ... 1
1.2 Thesis Organization ... 2
2 Background and Related Works ... 3
2.1 Program Analysis ... 3
2.2 Firefox OS ... 4
2.2.1 Gaia ... 4
2.2.2 Gecko ... 5
2.2.3 Gonk ... 5
2.3 QEMU ... 5
2.4 VPA ... 5
2.4.1 SET ... 6
2.5 B2G profiler ... 6
3 Design and Implementation of SET with JavaScript Events ... 7
3.1 SET Annotation Framework ... 7
3.1.1 Basic SET Agent ... 9
3.1.2 SET Engine with Annotation List ... 10
3.2 Application Start Detection ... 12
3.3 Instrumentation in SpiderMonkey ... 13
3.3.1 JavaScript Function Event ... 14
3.3.2 Just-In-Time Compiler Event ... 14
3.4 Analysis Tools ... 14
4 Evaluation ... 16
4.1 Experimental Setup ... 16
4.1.1 SunSpider Benchmark ... 17
4.2 Experimental Results ... 18
4.2.1 Overhead of SET Annotation ... 18
4.3 Monitoring JavaScript Function ... 22
4.3.1 Case Study 1:Just in Time Compiler Experiment ... 22
4.3.2 Case Study 2:Profiling Crypto Program ... 24
4.3.3 Comparing to B2G Profiler ... 26
5 Conclusion and Future Work ... 28
Bibliography ... 29

[1] “Boot To Gecko.” [Online]. Available: https://wiki.mozilla.org/B2G
[2] “WebAPI.” [Online]. Available: https://wiki.mozilla.org/WebAPI
[3] “Geeksphone.” [Online]. Available: http://www.geeksphone.com/
[4] “Ftrace.” [Online]. Available: http://elinux.org/Ftrace
[5] “perf: Linux profiling with performance counters .” [Online]. Available: https://perf.wiki.kernel.org/index.php/Main_Page
[6] S.-H. Hung, T.-W. Kuo, C.-S. Shih, and C.-H. Tu, “System-wide profiling and optimization with virtual machines,” in Design Automation Conference (ASP-DAC), 2012 17th Asia and South Pacific. IEEE, 2012, pp. 395–400.
[7] W.-C. Hsu, S.-H. Hung, and C.-H. Tu, “A virtual timing device for program performance analysis,” in Computer and Information Technology (CIT), 2010 IEEE 10th International Conference on. IEEE, 2010, pp. 2255–2260.
[8] T. Ball and S. K. Rajamani, “The S LAM project: debugging system software via static analysis,” in ACM SIGPLAN Notices, vol. 37, no. 1. ACM, 2002, pp. 1–3.
[9] A. Feldthaus, M. Schafer, M. Sridharan, J. Dolby, and F. Tip, “Efficient construction of approximate call graphs for javascript ide services,” in Software Engineering (ICSE), 2013 35th International Conference on. IEEE, 2013, pp. 752–761.
[10] N. Nethercote and J. Seward, “Valgrind: a framework for heavyweight dynamic binary instrumentation,” in ACM Sigplan Notices, vol. 42, no. 6. ACM, 2007, pp. 89–100.
[11] S. L. Graham, P. B. Kessler, and M. K. Mckusick, “Gprof: A call graph execution profiler,” in ACM Sigplan Notices, vol. 17, no. 6. ACM, 1982, pp. 120–126.
[12] M. A. Laurenzano, M. M. Tikir, L. Carrington, and A. Snavely, “PEBIL: Efficient static binary instrumentation for linux,” in Performance Analysis of Systems &; Software (IS-PASS), 2010 IEEE International Symposium on. IEEE, 2010, pp. 175–183.
[13] J.Keniston, “Ptrace, utrace, uprobes: Lightweight, dynamic tracing of user apps,” 2007. [Online]. Available: http://www.linuxinsight.com/ ols2007-ptrace-utrace-uprobes-lightweight-dynamic-tracing-of-user-apps.html
[14] C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood, “Pin: building customized program analysis tools with dynamic instrumentation,” in Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, ser. PLDI ’05. New York, NY, USA: ACM, 2005, pp. 190–200. [Online]. Available: http://doi.acm.org/10.1145/1065010.1065034
[15] G. Corporation, “Android Open Source Project.” [Online]. Available: https: //source.android.com/
[16] F. Bellard, “QEMU, a fast and portable dynamic translator,” in Proceedings of the annual conference on USENIX Annual Technical Conference, ser. ATEC ’05. Berkeley, CA, USA: USENIX Association, 2005, pp. 41–41.
[17] “Kcachegrind,” 2012. [Online]. Available: http://kcachegrind.sourceforge.net/html/Home.html
[18] “SunSpider.” [Online]. Available: https://www.webkit.org/perf/sunspider/sunspider.html
[19] “B2G Profiler.” [Online]. Available: https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler
[20] “Cleopatra-UI.” [Online]. Available: http://people.mozilla.org/~bgirard/cleopatra/


QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top