




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
小型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年军队文职人员招聘之军队文职管理学考前冲刺模拟试卷A卷含答案
- 2025年军队文职人员招聘之军队文职公共科目题库检测试卷B卷附答案
- 2025年消防设施操作员之消防设备高级技能能力提升试卷B卷附答案
- 采购分包资源配置合同(2篇)
- 2023年全国硕士研究生考试《管理类联考综合能力》试题真题及答案
- 2025年党史竞赛知识题库70题及答案
- 会计学成本会计模拟试题集
- 各行业各年度数据对比表格
- 泰坦尼克号的文化价值和社会反思:高中语文教学教案
- 经济学微观经济学知识点归纳与解析
- 07SG111-1 建筑结构加固施工图设计表示方法
- 屋顶分布式光伏发电EPC项目 投标方案(技术方案)
- 网约车停运损失费起诉状模板
- 中国急性缺血性卒中诊治指南(2023)解读
- A型肉毒素治疗知情同意书 注射知情同意书
- 混凝土采购项目整体供货方案
- 血液透析导管溶栓及护理
- 公司外聘人员管理制度
- 慢病联合用药病
- 兰州拉面-模板参考
- 武汉市2024届高中毕业生二月调研考试(二调)英语试卷(含答案)
评论
0/150
提交评论