版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
小型JIT編譯器之最佳化技術評估指導教授:單智君老師指導學長:喬偉豪學長組員:鍾懿軒,蔣季融,李國丞Outline觀察-----------------------------------鍾懿軒動機-----------------------------------鍾懿軒目標-----------------------------------鍾懿軒初步設計-----------------------------李國丞修改過的設計------------------------蔣季融未來進度-----------------------------蔣季融觀察Java是用stack運算。因為底層機器是register-based非stack-based,用interpreter執行,performance不佳。加入JIT將bytecode轉換為register-based的指令,可以增進performance。若於JIT中加入一些機制,增進其效能,則可進一步增進javaperformance。動機加入的機制若能產生IR,使JITcompiler後端處理更方便。就有可能增進JIT的速度。folding機制:讀入bytecode產生register-based的IR,簡便後段處理。因此決定於JIT中加入folding機制。目標將folding機制加入JIT中,以最少的overhead,fold最多的pattern,達到增加performance的目的。初步設計架構圖Bytecode分類Pattern統計遇到的問題舊架構圖舊folding架構圖Bytecode分類1.定義:參考kim’spaper(AdvancedPOCModel-BasedJavaInstructionFoldingMechanism)P:非operation含有push。Op:operation含有push不含pop。Oc:operation含有pop不含push。C:非operation含有pop。On:不含pushpop,無法分類者。Bytecode分類(續)參考學長的的paper(stackoperationsfoldinginjavaprocessors)P:transferingdatafromConstantRegisterorLocalVariabletotheoperandstack。O:getsdatafromtheoperandstackandthenperformsdifferenttasksOe:ALUtypeoperatorthatwritestheresultbacktotheoperandstack。。Ob:Branchtypeoperator。Oc:Complextypeoperatorincludingarrayaccess,constantpoolaccess。。Ot:unableorhardtojointhefoldingoperation。C:consumesdatafromtheoperandstack,andstoresdatabackintothelocalvariable。。Bytecode分類(續)2.統計bytecodepush/pop數:檢視kvmsourcecode(bytecodes.c):查看每道bytecode的執行碼中有有多少push,pop的動作。檢視jvmspec(chapter6)每道bytecode都已規定好stack情況,可直接接紀錄。AnalyzepatternspossibilityinJavaclassfileGetinformationfromJavaclassfileDoitourself(inC++)BCELlibraryforJava(/bcel)Possibilityofpatterns(1)KIM所統計出的Patterns及出現百分比比(2)自行統計”EmbeddedCaffeineMark”的結果ProblemsClassificationcansavetimeofstringmatchingUsing““Hashing”isbetterthanstringmatching!Benefitofclassificationnolongerexistswhenusing“Hashing”!使用stringmatchingsequentialsearch:Toomuchfindingoverhead。。修改過的設計計新架構圖Folding方法Structureof“JVMwithJIT”JavacodesourceJAVAcompilerJavabytecodeClassloaderBytecodeverifierHardwareOperatingSystemJavaclasslibrariesHotspotInterpretNativecodeJVMInterpreterJITYNInteractionbetweenInterpreter&JITTimeOnemethodHotspotDetectInterpretTimeComplicatedcodeJITEndofmethod(Startofmethod)CodeblockCodeblockStrutureofourJITJITIRgeneratorFoldingCodegeneratorIR1IR2NativecodeMethod方法(4-1)-OverviewO-oriented.
SearchbytecodesforO-typebytecodethenfindfoldingpatternforthisO-typebytecode.Datastructure:array.Table:Usedforstoringinformationofbytecodes.方法(4-2)-DataStructureTable:usebytecodeIDnumberasindex.Buffer:length=4;Bytecodeinformation:TypeP_num:PushnumberPostive,stackgrowC_num:PopnumberNegative,stackfall方法(4-3)-Algorithm經由bytecode定義可得:P-type:C_num=0,P_num=1.C-type:P_num=0,C_num=1.O-type:不一定,視其其功能而定。。以O-type的attribute為尋找pattern的依據。P_num:向後尋找P_num個bytecodesC_num:向前尋找C_num個bytecodes方法(4-4)Match:向前找C_num個bytecodes的P_num剛好和O-type的C_num相抵銷。向後找P_num個bytecodes的C_num剛好和O-type的P_num相抵銷。整個pattern的attribute和要為零。無法match放棄此O-typebytecode,繼續找下一一個。針對continuouspattern設計。未來進度TracingcodeModifyingcodeSimulationPerformanceTracingcodeEnvironmentconfigurationTracecodeConcentrateon““HowtoaddFoldingintoJIT?”ModifyingcodeAddingFoldingtoJITModulizingFoldingandaddingitintoJITbetween““IRgenerator”and“Codegenerator”IRGeneratorCodeGeneratorBytecodeNativecodeFoldingSimulationRunbenchmarkonARMsimulatoronLinuxworkstationBenchmark:”EmbeddedCaffeineMark”PerformanceFindout“PerformanceSpeedup”afterusingfoldingSpeedup=(time_with_folding)/(time_without_folding)Performance(cont.)EquationPositive:Make““CodeGenerator”workeasierandfasterNegative(Overhead):Timetosearch““FoldingGroup”inHotspots9、静夜四无无邻,荒居居旧业贫。。。12月-2212月-22Thursday,December29,202210、雨中黄叶树树,灯下白头头人。。12:53:4812:53:4812:5312/29/202212:53:49PM11、以我独沈沈久,愧君君相见频。。。12月-2212:53:4912:53Dec-2229-Dec-2212、故人江海海别,几度度隔山川。。。12:53:4912:53:4912:53Thursday,December29,202213、乍乍见见翻翻疑疑梦梦,,相相悲悲各各问问年年。。。。12月月-2212月月-2212:53:4912:53:49December29,202214、他乡生生白发,,旧国见见青山。。。29十十二月202212:53:49下下午12:53:4912月-2215、比比不不了了得得就就不不比比,,得得不不到到的的就就不不要要。。。。。十二二月月2212:53下下午午12月月-2212:53December29,202216、行动动出成成果,,工作作出财财富。。。2022/12/2912:53:4912:53:4929December202217、做前,能够够环视四周;;做时,你只只能或者最好好沿着以脚为为起点的射线线向前。。12:53:49下午午12:53下下午12:53:4912月-229、没有失失败,只只有暂时时停止成成功!。。12月-2212月-22Thursday,December29,202210、很多事事情努力力了未必必有结果果,但是是不努力力却什么么改变也也没有。。。12:53:4912:53:4912:5312/29/202212:53:49PM11、成功功就是是日复复一日日那一一点点点小小小努力力的积积累。。。12月月-2212:53:4912:53Dec-2229-Dec-2212、世间成成事,不不求其绝绝对圆满满,留一一份不足足,可得得无限完完美。。。12:53:4912:53:4912:53Thursday,December29,202213、不知香香积寺,,数里入入云峰。。。12月-2212月-2212:53:4912:53:49December29,202214、意意志志坚坚强强的的人人能能把把世世界界放放在在手手中中像像泥泥块块一一样样任任意意揉揉捏捏。。29十十二二月月202212:53:49下下午午12:53:4912月月-2215、楚塞三湘接接,荆门九派派通。。。十二月2212:53下下午12月-2212:53December29,202216、少年十五五二十时,,步行夺得得胡马骑。。。2022/12/2912:53:4912:53:4929December202217、空山新新雨后,,天气晚晚来秋。。。12:53:49下下午12:53下下午12:53:4912月-229、杨柳散和风风,青山澹吾吾虑。。12月-2212月-22Thursday,December29,202210、阅阅读读一一切切好好书书如如同同和和过过去去最最杰杰出出的的人人谈谈话话。。12:53:4912:53:4912:5312/29/202212:53:49PM11、越是没有有本领的就就越加自命命不凡。12月-2212:53:4912:53Dec-2229-Dec-2212、越是无能的的人,越喜欢欢挑剔别人的的错儿。12:53:4912:53:4912:53Thur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 少儿口才启蒙课件
- 江南文化美学解析课件
- 超声科甲状腺超声检查注意事项
- 健康评估笔记软件
- 2025版全科医学疾病常见症状及护理手册
- 装修补充协议书
- 2025-2026学年北京市昌平区八年级英语上册期中考试试卷及答案
- 2025年湘教版高二历史上册月考考试试题及答案
- 西师版八年级生物上册月考考试试题及答案
- 学校让交就业协议书
- 膝关节损伤术后康复运动康复方案设计
- 医保法律法规培训
- 挫而不折破茧成蝶高一主题班会课件
- 新版苏教版三年级数学上册《间隔排列》教案
- 物流配送责任免除协议条款
- MRI常见伪影简介课件
- 安全工器具的检查及使用培训
- 中国黄酒酿造技术单选题100道及答案
- 前列腺癌内分泌治疗护理
- 低压电工安全技术培训
- 中国婴幼儿 科学配餐与食品制作指导手册
评论
0/150
提交评论