{"updated":"2025-01-20T19:03:05.016155+00:00","metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00142289","sets":["934:935:8226:8227"]},"path":["8227"],"owner":"11","recid":"142289","title":["Rubyにおけるライトバリアのないオブジェクトを考慮した世代別インクリメンタルGCの実装"],"pubdate":{"attribute_name":"公開日","attribute_value":"2015-06-02"},"_buckets":{"deposit":"e567f280-31d8-4a6d-91dd-a5f8eea4d26b"},"_deposit":{"id":"142289","pid":{"type":"depid","value":"142289","revision_id":0},"owners":[11],"status":"published","created_by":11},"item_title":"Rubyにおけるライトバリアのないオブジェクトを考慮した世代別インクリメンタルGCの実装","author_link":["210622","210623","210620","210621"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"Rubyにおけるライトバリアのないオブジェクトを考慮した世代別インクリメンタルGCの実装"},{"subitem_title":"Implementation of Generational Incremental Garbage Collector with Write Barrier Unprotected Objects on Ruby","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"[発表概要]","subitem_subject_scheme":"Other"}]},"item_type_id":"3","publish_date":"2015-06-02","item_3_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"Heroku, Inc."},{"subitem_text_value":"Heroku, Inc."}]},"item_3_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Heroku, Inc.","subitem_text_language":"en"},{"subitem_text_value":"Heroku, Inc.","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/142289/files/IPSJ-TPRO0801005.pdf"},"date":[{"dateType":"Available","dateValue":"2017-06-02"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-TPRO0801005.pdf","filesize":[{"value":"80.6 kB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"0","billingrole":"5"},{"tax":["include_tax"],"price":"0","billingrole":"6"},{"tax":["include_tax"],"price":"0","billingrole":"15"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"90d30a8c-52b2-4b3f-ab58-276ad69d58e9","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2015 by the Information Processing Society of Japan"}]},"item_3_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"笹田, 耕一"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"松本, 行弘"}],"nameIdentifiers":[{}]}]},"item_3_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Koichi, Sasada","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Yukihiro, Matsumoto","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":"世代別GC,およびインクリメンタルGCはよく知られたGCの改善手法であるが,実装するためには正確なライトバリアが必須である.一方,Ruby処理系は保守的マーク&スイープGCを用いることで,C言語などで拡張コードを書くときに余計なコードを含む必要がなかったが,ライトバリアを挿入しておらず,これを必要とするGCアルゴリズムを導入することができなかった.我々はこの問題を解決するために,ライトバリアに対応しているオブジェクトとしていないオブジェクトを区別して,世代別インクリメンタルGCを実装する新しい方法を提案する.本発表では提案する手法について説明し,Rubyへの実装について述べる.","subitem_description_type":"Other"}]},"item_3_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"Generational GC and incremental GC are well known algorithms to improve performance of garbage collector, and they require correct write barriers in the interpreter. On the other hands, Ruby interpreter uses conservertive mark and sweep GC, and we can implement C extensions easily without any extra codes. However, Ruby interepreter does not have any write barriers and we can not implement GC algirithms which require correct write barriers. To solve this problem, we propose new technique to implement generational and incremental GC by separating all objects into write barrier protected objects and write barrier unprotected objects. In this presentation, we will describe new technique and an implementation on Ruby interpreter.","subitem_description_type":"Other"}]},"item_3_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicPageEnd":"12","bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌プログラミング(PRO)"}],"bibliographicPageStart":"12","bibliographicIssueDates":{"bibliographicIssueDate":"2015-06-02","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"1","bibliographicVolumeNumber":"8"}]},"relation_version_is_last":true,"weko_creator_id":"11"},"created":"2025-01-19T00:19:45.562014+00:00","id":142289,"links":{}}