{"links":{},"id":16899,"metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00016899","sets":["934:935:973:977"]},"path":["977"],"owner":"1","recid":"16899","title":["Java言語に対する効果的なNullチェックの最適化手法"],"pubdate":{"attribute_name":"公開日","attribute_value":"2001-02-15"},"_buckets":{"deposit":"64fa1c2e-638a-4372-87fe-4a519c914c80"},"_deposit":{"id":"16899","pid":{"type":"depid","value":"16899","revision_id":0},"owners":[1],"status":"published","created_by":1},"item_title":"Java言語に対する効果的なNullチェックの最適化手法","author_link":["0","0"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"Java言語に対する効果的なNullチェックの最適化手法"},{"subitem_title":"Effective Null Pointer Check Optimization for Java","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"通常論文","subitem_subject_scheme":"Other"}]},"item_type_id":"3","publish_date":"2001-02-15","item_3_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"日本アイ・ビー・エム株式会社東京基礎研究所"},{"subitem_text_value":"日本アイ・ビー・エム株式会社東京基礎研究所"},{"subitem_text_value":"日本アイ・ビー・エム株式会社東京基礎研究所"}]},"item_3_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Tokyo Research Labolatory, IBM Japan, Ltd","subitem_text_language":"en"},{"subitem_text_value":"Tokyo Research Labolatory, IBM Japan, Ltd","subitem_text_language":"en"},{"subitem_text_value":"Tokyo Research Labolatory, IBM Japan, Ltd","subitem_text_language":"en"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"jpn"}]},"item_publisher":{"attribute_name":"出版者","attribute_value_mlt":[{"subitem_publisher":"情報処理学会","subitem_publisher_language":"ja"}]},"publish_status":"0","weko_shared_id":-1,"item_file_price":{"attribute_name":"Billing file","attribute_type":"file","attribute_value_mlt":[{"url":{"url":"https://ipsj.ixsq.nii.ac.jp/record/16899/files/IPSJ-TPRO4202009.pdf"},"date":[{"dateType":"Available","dateValue":"2003-02-15"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-TPRO4202009.pdf","filesize":[{"value":"1.2 MB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"660","billingrole":"5"},{"tax":["include_tax"],"price":"330","billingrole":"6"},{"tax":["include_tax"],"price":"0","billingrole":"15"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"1fa9489e-ecab-4f00-a3fa-66710c546bc1","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2001 by the Information Processing Society of Japan"}]},"item_3_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"川人, 基弘"},{"creatorName":"小松, 秀昭"},{"creatorName":"中谷, 登志男"}],"nameIdentifiers":[{}]}]},"item_3_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Motohiro, Kawahito","creatorNameLang":"en"},{"creatorName":"Hideaki, Komatsu","creatorNameLang":"en"},{"creatorName":"Toshio, Nakatani","creatorNameLang":"en"}],"nameIdentifiers":[{}]}]},"item_3_source_id_9":{"attribute_name":"書誌レコードID","attribute_value_mlt":[{"subitem_source_identifier":"AA11464814","subitem_source_identifier_type":"NCID"}]},"item_resource_type":{"attribute_name":"資源タイプ","attribute_value_mlt":[{"resourceuri":"http://purl.org/coar/resource_type/c_6501","resourcetype":"journal article"}]},"item_3_source_id_11":{"attribute_name":"ISSN","attribute_value_mlt":[{"subitem_source_identifier":"1882-7802","subitem_source_identifier_type":"ISSN"}]},"item_3_description_7":{"attribute_name":"論文抄録","attribute_value_mlt":[{"subitem_description":"我々はJava言語で書かれたプログラムからNullポインタチェックの最適化を行う新しいアルゴリズムを提案する.この手法はJavaに限らず,Nullチェックを必要とする言語に対して適用可能である.我々のアルゴリズムはNullチェックを実行とは逆向きに移動させ,冗長なNullチェックを除去する.この最適化により,コード移動を妨げる多くのNullチェックを除去し,他の最適化の機会を増やすことができる.また,この最適化を他の最適化と協調して実行させることにより,お互いの最適化効果を最大限に高めることができる.さらに,Nullチェックを実行方向に移動させ,多くのNullチェックをハードウェアtrapで代用し,Nullチェックの実行コストを最小限にする.我々はこのアルゴリズムをIBM Java Just-in-Time(JIT)compilerに実装して評価を行った.その結果,我々の手法により以前の手法と比較して,jBYTEmarkで最大71エ%,SPECjvm98で最大10エ%パフォーマンスを改善することができた.","subitem_description_type":"Other"}]},"item_3_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"We present a new algorithm for optimizing null pointer checks from programs written in Java. The same approach should work for any languages requiring null checking. Our new algorithm moves null checks backwards and eliminates redundant null checks. This increases the opportunities for other optimizations to be applied by eliminating many null checks that impede code motion. This also greatly improves the effect of optimizations by means of teaming up with other optimizations. In a separate pass, it moves null checks forwards and converts many null checks to hardware traps in order to minimize the execution costs for the remaining null checks. This algorithm has been implemented in the IBM Java Just-in-Time (JIT) compiler. Our experimental results show that our approach improves performance by up to 71エ% for jBYTEmark and up to 10エ% for SPECjvm98 over previously known algorithms.","subitem_description_type":"Other"}]},"item_3_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicPageEnd":"96","bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌プログラミング(PRO)"}],"bibliographicPageStart":"81","bibliographicIssueDates":{"bibliographicIssueDate":"2001-02-15","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"SIG02(PRO9)","bibliographicVolumeNumber":"42"}]},"relation_version_is_last":true,"weko_creator_id":"1"},"created":"2025-01-18T22:50:02.600115+00:00","updated":"2025-01-22T23:37:28.212028+00:00"}