c - “紧凑”字节码的好处 - stack-machine VM
问题描述
首先,让我明确一点,我目前正在编写一个字节码解释器。
我一直在到处阅读有关字节码必须“紧凑”的信息。但是,我真的不明白这应该是什么意思,或者好处是什么。
目前,例如,我的“字节码”是一个元组数组,第一个元素是一个字节 - 操作码本身(8 位),第二个元素是 uint64 (人们称之为 an unsigned long long
) - 操作的可选参数( 64 位)。
Tha 使每个“指令”为 72 位。(诚然,这是非常不必要的,因为他们中的许多人不接受任何参数,但我认为它更容易 - 并且性能更高? - 这样,因为我不必每次都检查是否有参数,只需通过指令列表)。
所以,我的问题:
- 更紧凑的代码有什么好处?(例如,如果每条指令是 32 位而不是 72 位,我会实现什么?)
- 我该怎么做才能让它变得更好?(如何以有效的方式处理“可选”参数?即:可变大小的指令)
解决方案
我能想到的好处:
- 更少的内存使用
- 更少的缓存未命中
- 较小的实际大小(如果您想存储/部署字节码)
推荐阅读
- javascript - 制作一个 React.js 单选按钮来禁用和启用另一个输入(类)
- javascript - 新评论回复在 React Redux 的递归组件中不断增加
- keycloak - Keycloak:访问令牌 client-1 以管理 client-2 资源
- java - Eclipselink 继承问题:关系到超类查询所有子类
- curl - 通过 curl 配置 nextcloud -> CSRF 检查失败
- javascript - 为什么 MessagePort.postMessage 会导致 Firefox 崩溃?
- sql - sql创建数据表查询中我的值675763582022462206:57是什么类型?
- c# - 不会发生hangfire作业取消
- c# - multiple is select tagHelper 自动生成
- reactjs - 将组件之间的数据传递到 React (props)