{"updated":"2025-01-19T10:00:44.059631+00:00","links":{},"metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00233718","sets":["934:1119:11590:11591"]},"path":["11591"],"owner":"44499","recid":"233718","title":["Performance Study of Kotlin and Java Programs with Bytecode Analysis"],"pubdate":{"attribute_name":"公開日","attribute_value":"2024-03-26"},"_buckets":{"deposit":"c61d8629-3514-4c51-b2f3-d1448c7d1a54"},"_deposit":{"id":"233718","pid":{"type":"depid","value":"233718","revision_id":0},"owners":[44499],"status":"published","created_by":44499},"item_title":"Performance Study of Kotlin and Java Programs with Bytecode Analysis","author_link":["635462","635460","635461","635459","635466","635468","635464","635463","635467","635465"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"Performance Study of Kotlin and Java Programs with Bytecode Analysis"},{"subitem_title":"Performance Study of Kotlin and Java Programs with Bytecode Analysis","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"Java, Kotlin, Java Virtual Machine, Java bytecode","subitem_subject_scheme":"Other"}]},"item_type_id":"3","publish_date":"2024-03-26","item_3_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"Kogakuin University"},{"subitem_text_value":"Kogakuin University"},{"subitem_text_value":"Nagasaki University"},{"subitem_text_value":"Ochanomizu University"},{"subitem_text_value":"Kogakuin University"}]},"item_3_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Kogakuin University","subitem_text_language":"en"},{"subitem_text_value":"Kogakuin University","subitem_text_language":"en"},{"subitem_text_value":"Nagasaki University","subitem_text_language":"en"},{"subitem_text_value":"Ochanomizu University","subitem_text_language":"en"},{"subitem_text_value":"Kogakuin University","subitem_text_language":"en"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"eng"}]},"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/233718/files/IPSJ-TACS1701005.pdf","label":"IPSJ-TACS1701005.pdf"},"date":[{"dateType":"Available","dateValue":"2026-03-26"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-TACS1701005.pdf","filesize":[{"value":"3.2 MB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"0","billingrole":"5"},{"tax":["include_tax"],"price":"0","billingrole":"6"},{"tax":["include_tax"],"price":"0","billingrole":"16"},{"tax":["include_tax"],"price":"0","billingrole":"11"},{"tax":["include_tax"],"price":"0","billingrole":"14"},{"tax":["include_tax"],"price":"0","billingrole":"15"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"2f094592-7ca9-420c-8e1f-1aac689b8195","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2024 by the Information Processing Society of Japan"}]},"item_3_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Hayataka, Nakamura"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Atsuya, Sonoyama"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Takeshi, Kamiyama"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Masato, Oguchi"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Saneyasu, Yamaguchi"}],"nameIdentifiers":[{}]}]},"item_3_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Hayataka, Nakamura","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Atsuya, Sonoyama","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Takeshi, Kamiyama","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Masato, Oguchi","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Saneyasu, Yamaguchi","creatorNameLang":"en"}],"nameIdentifiers":[{}]}]},"item_3_source_id_9":{"attribute_name":"書誌レコードID","attribute_value_mlt":[{"subitem_source_identifier":"AA11833852","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-7829","subitem_source_identifier_type":"ISSN"}]},"item_3_description_7":{"attribute_name":"論文抄録","attribute_value_mlt":[{"subitem_description":"Kotlin is a newly proposed programming language that is highly compatible with Java. Typically, source code written in Kotlin is compiled into Java bytecode, which is then interpreted and executed by the Java Virtual Machines (JVMs). To achieve high performance, the codes (source code or bytecode) must be optimized for the existing Java virtual machines. In this paper, we evaluate the performance of loop processing in Kotlin and Java programs considering the existing JVM implementations. First, we perform micro-benchmarking of loop processing, such as for and while statements, using two popular JVM implementations. The results show that the performance depends on the description methods even for the same semantics. The performances can be classified into two groups: fast and slow, in both JVM implementations. Second, we compare the bytecodes generated by the compilers from the description methods of the fast and slow groups. We then show the differences between them, which are small and cannot be justified as the direct cause of a significant performance difference. Third, we compare the native codes generated by a just-in-time (JIT) compiler and show that the bytecode in the fast group is deeply optimized by the JIT compiler, while that in the slow group is not. In fact, small differences in the bytecode lead to differences in the behavior of the JIT compiler and to non-trivial performance gains.\n------------------------------\nThis is a preprint of an article intended for publication Journal of\nInformation Processing(JIP). This preprint should not be cited. This\narticle should be cited as: Journal of Information Processing Vol.32(2024) (online)\n------------------------------","subitem_description_type":"Other"}]},"item_3_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"Kotlin is a newly proposed programming language that is highly compatible with Java. Typically, source code written in Kotlin is compiled into Java bytecode, which is then interpreted and executed by the Java Virtual Machines (JVMs). To achieve high performance, the codes (source code or bytecode) must be optimized for the existing Java virtual machines. In this paper, we evaluate the performance of loop processing in Kotlin and Java programs considering the existing JVM implementations. First, we perform micro-benchmarking of loop processing, such as for and while statements, using two popular JVM implementations. The results show that the performance depends on the description methods even for the same semantics. The performances can be classified into two groups: fast and slow, in both JVM implementations. Second, we compare the bytecodes generated by the compilers from the description methods of the fast and slow groups. We then show the differences between them, which are small and cannot be justified as the direct cause of a significant performance difference. Third, we compare the native codes generated by a just-in-time (JIT) compiler and show that the bytecode in the fast group is deeply optimized by the JIT compiler, while that in the slow group is not. In fact, small differences in the bytecode lead to differences in the behavior of the JIT compiler and to non-trivial performance gains.\n------------------------------\nThis is a preprint of an article intended for publication Journal of\nInformation Processing(JIP). This preprint should not be cited. This\narticle should be cited as: Journal of Information Processing Vol.32(2024) (online)\n------------------------------","subitem_description_type":"Other"}]},"item_3_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌コンピューティングシステム(ACS)"}],"bibliographicIssueDates":{"bibliographicIssueDate":"2024-03-26","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"1","bibliographicVolumeNumber":"17"}]},"relation_version_is_last":true,"weko_creator_id":"44499"},"id":233718,"created":"2025-01-19T01:35:15.655827+00:00"}