| 此條目需要 精通或熟悉相关主题的编者参与及协助编辑。 請邀請適合的人士改善本条目。更多的細節與詳情請參见討論頁。 |
在计算机科学中,动态重新编译(有时缩写为dynarec或伪首字母缩写DRC)是某些模拟器和虚拟机的功能。在执行期间,系统会重新编译程序的一些部分,调整生成的代码,使其表现程序的运行时环境,并有可能利用那些传统静态编译器不能获得的信息,生成更高效的代码。
用途
大多数动态重编译器用于在执行时不同架构间转换机器码。这是一个在模拟传统游戏平台中往往需要执行的任务。在其他情况下,系统可采取动态重编译作为自适应优化的一部分,以执行可移植程序,如 Java 与 .NET 通用语言运行库 字节码。全速调试器还使用动态重编译来减少大多数逆优化技术中产生的空间开销,并实现其他功能,例如动态线程迁移。
任务
动态重编译执行的主要任务:
动态重编译也可以执行一些辅助任务:
- 管理重编译代码的缓存
- 在具有循环计数寄存器的平台上更新已循环计数
- 中断检查管理
- 为支持虚拟化的硬件提供接口,例如GPU
- 优化更高级别的代码结构,以便在目标硬件上高效运行(见下文)
实例
应用
通用
游戏
参见
参考资料
外部链接