(3.236.222.124) 您好!臺灣時間:2021/05/19 11:37
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果

詳目顯示:::

我願授權國圖
: 
twitterline
研究生:方奎輯
研究生(外文):Kuei-Ji Fang
論文名稱:設計及實作Android Native Development Kit多核心編譯及佈局優化
論文名稱(外文):Design and Implementation of Multi-Threaded Compilation and Layout Optimization on Android Native Development Kit
指導教授:廖世偉
口試委員:徐慰中黃維中陳呈瑋
口試日期:2013-07-13
學位類別:碩士
校院名稱:國立臺灣大學
系所名稱:資訊工程學研究所
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2013
畢業學年度:101
語文別:英文
論文頁數:30
中文關鍵詞:Android NDKPortable NDK多核心編譯布局優化編譯時間鏈結資訊
外文關鍵詞:Android NDKPortable NDKMulti-threaded compilationLayout optimizationCompilation timeLTO scope
相關次數:
  • 被引用被引用:0
  • 點閱點閱:293
  • 評分評分:
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
Portable Native Development Kit(PNDK)更改了Android NDK的架構,讓NDK有更好的可攜性及彈性, PDNK將編譯的步驟延遲到Device上,以達到可攜性的效果,但在Device上進行編譯時,編譯時間過長是個大問題,這篇碩論是實作在PNDK的架構上,將PNDK的進行架構修改而支援多核心編譯,進而提升編譯速度,此外我們希望能在Host端先進行鏈結結構的優化,讓每個編譯器單元看到更多的鏈結資訊,而得到更多的優化效果。

Portable Native Development Kit (PNDK) modifies the architecture of Android NDK to gain more portable and flexible. PNDK migrates the machine-dependent compilation process to the device side for the sake of portability. However, the compilation time for PNDK on the device side will take longer than origin NDK does. We want to modify the PNDK architecture to support multi-threaded compilation in order to speed up compilation time. Besides, we optimize the code layout to gain more link information and optimization opportunity.

誌謝 1
中文摘要 2
ABSTRACT 3
CONTENTS 4
Chapter 1 Introduction 5
Chapter 2 Background 7
2.1 Native Development Kit 7
2.2 Portable Native Development Kit 9
2.2.1 Android Bitcode 9
2.2.2 Libportalbe 10
2.2.3 Implement 10
Chapter 3 Problem Overview 12
Chapter 4 Multi-Threaded Compilation and Layout Optimization 13
4.1 Multi-threaded Compilation 13
4.2 Layout Optimization 14
4.2.1 Max Weighted Edge First 15
4.2.2 Max Edges Node First 16
Chapter 5 Experiments 19
5.1 Compilation time improvement 19
5.2 LTO information 20
5.3 Runtime performance 24
Chapter 6 Conclusion 26
Chapter 7 References 27


[1]Android NDK, http://developer.android.com/sdk/ndk/index.html
[2]Lee, S. and Jeon, J.W., Evaluating performance of Android platform using native C for embedded systems, Control Automation and Systems (ICCAS), IEEE, pp. 1160-1163, 2010
[3]Implement Ahead-of-Time Compilation via LLVM on Android NDK
[4]The LLVM compiler infrastructure, http://llvm.org
[5]AOT compiler, http://en.wikipedia.org/wiki/AOT_compiler
[6]Lin, C.M., Lin, J.H., Dow, C.R. and Wen, C.M., Benchmark Dalvik and Native Code for Android System, Innovations in Bio-inspired Computing and Applications, IEEE, pp. 320-323, 2011
[7]Ratabouil, S., Android Ndk Beginner’s Guide, Packt Publishing, 2011
[8]LLVM Assembly Language Reference Manual, http://llvm.org/docs/LangRef.html
[9]Android Software Development Kit, http://developer.android.com/sdk/index.html
[10]Android Binary Interface , http://en.wikipedia.org/wiki/Application_binary_interface
[11]Clang: a C language family frontend of LLVM, http://clang.llvm.org/
[12]Little-endian, http://en.wikipedia.org/wiki/Little-endian
[13]Christopher Guntli, Architecture of clang, HSR – University of Applied Science in Rapperswil, 2011
[14]Komatineni S., MacLean D. and Hashimi S.Y., Programming 3D Graphics with
OpenGL, Pro Android 3, Springer, pp. 623-691, 2011.
[15]MCLinker: LLVM Linker for Mobile Computing,http://code.google.com/p/mclinker/
[16]Multi-thread http://en.wikipedia.org/wiki/Thread_(computing)
[17]Link-time Optimization, http://en.wikipedia.org/wiki/Link-time_optimization
[18]Compilation Unit, http://en.wikipedia.org/wiki/Compilation_unit
[19]Inter-procedural Optimization, http://en.wikipedia.org/wiki/Interprocedural_optimization
[20]Nexus 10, http://en.wikipedia.org/wiki/Nexus_10
[21]LLVM Statistic, http://llvm.org/docs/ProgrammersManual.html#the-statistic-class-stats-option
[22]Sony Xperia S, http://en.wikipedia.org/wiki/Xperia_S


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