Hop, Skip, & Jump:跨平台语言中立虚拟机的实用栈上替换

Kunshan Wang, S. Blackburn, Antony Lloyd Hosking, Michael Norrish
{"title":"Hop, Skip, & Jump:跨平台语言中立虚拟机的实用栈上替换","authors":"Kunshan Wang, S. Blackburn, Antony Lloyd Hosking, Michael Norrish","doi":"10.1145/3186411.3186412","DOIUrl":null,"url":null,"abstract":"On-stack replacement (OSR) is a performance-critical technology for many languages, especially dynamic languages. Conventional wisdom, apparent in JavaScript engines such as V8 and SpiderMonkey, is that OSR must be implemented in a low-level (i.e., in assembly) and language-specific way. This paper presents an OSR abstraction based on Swapstack, materialized as the API for a low-level virtual machine, and shows how the abstraction of resumption protocols facilitates an elegant implementation of this API on real hardware. Using an experimental JavaScript implementation, we demonstrate that this API enables the language implementation to perform OSR without the need to deal with machine-level details. We also show that the API itself is implementable on concrete hardware. This work helps crystallize OSR abstractions and, by providing a reusable implementation, brings OSR within reach for more language implementers.","PeriodicalId":176740,"journal":{"name":"Proceedings of the 14th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments","volume":"199 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-03-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":"{\"title\":\"Hop, Skip, & Jump: Practical On-Stack Replacement for a Cross-Platform Language-Neutral VM\",\"authors\":\"Kunshan Wang, S. Blackburn, Antony Lloyd Hosking, Michael Norrish\",\"doi\":\"10.1145/3186411.3186412\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"On-stack replacement (OSR) is a performance-critical technology for many languages, especially dynamic languages. Conventional wisdom, apparent in JavaScript engines such as V8 and SpiderMonkey, is that OSR must be implemented in a low-level (i.e., in assembly) and language-specific way. This paper presents an OSR abstraction based on Swapstack, materialized as the API for a low-level virtual machine, and shows how the abstraction of resumption protocols facilitates an elegant implementation of this API on real hardware. Using an experimental JavaScript implementation, we demonstrate that this API enables the language implementation to perform OSR without the need to deal with machine-level details. We also show that the API itself is implementable on concrete hardware. This work helps crystallize OSR abstractions and, by providing a reusable implementation, brings OSR within reach for more language implementers.\",\"PeriodicalId\":176740,\"journal\":{\"name\":\"Proceedings of the 14th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments\",\"volume\":\"199 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2018-03-25\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"5\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 14th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3186411.3186412\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 14th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3186411.3186412","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5

摘要

堆栈上替换(OSR)是许多语言(尤其是动态语言)的性能关键技术。在V8和SpiderMonkey等JavaScript引擎中,传统观点认为OSR必须以低级(即汇编)和特定于语言的方式实现。本文提出了一种基于Swapstack的OSR抽象,将其具体化为底层虚拟机的API,并展示了恢复协议的抽象如何促进该API在实际硬件上的优雅实现。使用一个实验性的JavaScript实现,我们证明了这个API使语言实现能够执行OSR,而不需要处理机器级的细节。我们还展示了API本身可以在具体的硬件上实现。这项工作有助于使OSR抽象具体化,并且通过提供可重用的实现,使更多的语言实现者能够接触到OSR。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Hop, Skip, & Jump: Practical On-Stack Replacement for a Cross-Platform Language-Neutral VM
On-stack replacement (OSR) is a performance-critical technology for many languages, especially dynamic languages. Conventional wisdom, apparent in JavaScript engines such as V8 and SpiderMonkey, is that OSR must be implemented in a low-level (i.e., in assembly) and language-specific way. This paper presents an OSR abstraction based on Swapstack, materialized as the API for a low-level virtual machine, and shows how the abstraction of resumption protocols facilitates an elegant implementation of this API on real hardware. Using an experimental JavaScript implementation, we demonstrate that this API enables the language implementation to perform OSR without the need to deal with machine-level details. We also show that the API itself is implementable on concrete hardware. This work helps crystallize OSR abstractions and, by providing a reusable implementation, brings OSR within reach for more language implementers.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Improving Dynamically-Generated Code Performance on Dynamic Binary Translators Demon: An Efficient Solution for on-Device MMU Virtualization in Mediated Pass-Through Hop, Skip, & Jump: Practical On-Stack Replacement for a Cross-Platform Language-Neutral VM gMig: Efficient GPU Live Migration Optimized by Software Dirty Page for Full Virtualization Fast PokeEMU: Scaling Generated Instruction Tests Using Aggregation and State Chaining
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1