fbpx
维基百科

动态重编译

计算机科学中,动态重新编译(有时缩写为dynarec或伪首字母缩写DRC)是某些模拟器虚拟机的功能。在执行期间,系统会重新编译程序的一些部分,调整生成的代码,使其表现程序的运行时环境,并有可能利用那些传统静态编译器不能获得的信息,生成更高效的代码。

用途 编辑

大多数动态重编译器用于在执行时不同架构间转换机器码。这是一个在模拟传统游戏平台中往往需要执行的任务。在其他情况下,系统可采取动态重编译作为自适应优化的一部分,以执行可移植程序,如 Java 与 .NET 通用语言运行库 字节码。全速调试器还使用动态重编译来减少大多数逆优化技术中产生的空间开销,并实现其他功能,例如动态线程迁移。

任务 编辑

动态重编译执行的主要任务:

  • 从源平台读入机器码
  • 为目标平台释放机器码

动态重编译也可以执行一些辅助任务:

  • 管理重编译代码的缓存
  • 在具有循环计数寄存器的平台上更新已循环计数
  • 中断检查管理
  • 为支持虚拟化的硬件提供接口,例如GPU
  • 优化更高级别的代码结构,以便在目标硬件上高效运行(见下文)

实例 编辑

应用 编辑

通用 编辑

游戏 编辑

  • MAME在其CPU模拟器中使用动态重编译,支持MIPS、SuperH、PowerPC,甚至是Voodoo GPU
  • Xbox 360的向后兼容性功能(即运行为初版Xbox编写的游戏),人们普遍认为其使用动态重编译
  • PPSSPP,索尼PlayStation Portable模拟器,其在x86与ARM平台上都有重编译器
  • PCSX2, 索尼PlayStation 2模拟器,拥有"SuperVU"的继任者——"microVU"重编译器[1]
  • Dolphin,任天堂GameCubeWii模拟器,有动态重编译选项
  • DeSmuME任天堂DS模拟器,有动态重编译选项[2]

参见 编辑

参考资料 编辑

  1. ^ . www.pcsx2.net. [2017-02-09]. (原始内容存档于2005-10-29) (英国英语). 
  2. ^ . desmume.org. [2017-02-09]. (原始内容存档于2009-02-27) (美国英语). 

外部链接 编辑

动态重编译, 此條目需要精通或熟悉相关主题的编者参与及协助编辑, 請邀請適合的人士改善本条目, 更多的細節與詳情請參见討論頁, 在计算机科学中, 动态重新编译, 有时缩写为dynarec或伪首字母缩写drc, 是某些模拟器和虚拟机的功能, 在执行期间, 系统会重新编译程序的一些部分, 调整生成的代码, 使其表现程序的运行时环境, 并有可能利用那些传统静态编译器不能获得的信息, 生成更高效的代码, 目录, 用途, 任务, 实例, 应用, 通用, 游戏, 参见, 参考资料, 外部链接用途, 编辑大多数器用于在执行时不同. 此條目需要精通或熟悉相关主题的编者参与及协助编辑 請邀請適合的人士改善本条目 更多的細節與詳情請參见討論頁 在计算机科学中 动态重新编译 有时缩写为dynarec或伪首字母缩写DRC 是某些模拟器和虚拟机的功能 在执行期间 系统会重新编译程序的一些部分 调整生成的代码 使其表现程序的运行时环境 并有可能利用那些传统静态编译器不能获得的信息 生成更高效的代码 目录 1 用途 2 任务 3 实例 4 应用 4 1 通用 4 2 游戏 5 参见 6 参考资料 7 外部链接用途 编辑大多数动态重编译器用于在执行时不同架构间转换机器码 这是一个在模拟传统游戏平台中往往需要执行的任务 在其他情况下 系统可采取动态重编译作为自适应优化的一部分 以执行可移植程序 如 Java 与 NET 通用语言运行库 字节码 全速调试器还使用动态重编译来减少大多数逆优化技术中产生的空间开销 并实现其他功能 例如动态线程迁移 任务 编辑动态重编译执行的主要任务 从源平台读入机器码 为目标平台释放机器码动态重编译也可以执行一些辅助任务 管理重编译代码的缓存 在具有循环计数寄存器的平台上更新已循环计数 中断检查管理 为支持虚拟化的硬件提供接口 例如GPU 优化更高级别的代码结构 以便在目标硬件上高效运行 见下文 实例 编辑应用 编辑通用 编辑 动态重编译为许多Java虚拟机的特色 在x86平台上苹果Mac OS X的Rosetta 允许PowerPC代码在x86架构上运行 在PowerPC Classic Mac OS平台上运行摩托罗拉68000系列代码的Mac 68k模拟器 Psyco Python的一个专有编译器 Mac上的Microsoft Virtual PC 用于在PowerPC架构上运行x86代码 QEMU 一个开源的全系统模拟器 VirtualBox使用动态重编译 Valgrind 是一种用于内存调试 内存泄漏检测和性能分析的编程工具 它使用动态重新编译游戏 编辑 MAME在其CPU模拟器中使用动态重编译 支持MIPS SuperH PowerPC 甚至是Voodoo GPU Xbox 360的向后兼容性功能 即运行为初版Xbox编写的游戏 人们普遍认为其使用动态重编译 PPSSPP 索尼PlayStation Portable模拟器 其在x86与ARM平台上都有重编译器 PCSX2 索尼PlayStation 2模拟器 拥有 SuperVU 的继任者 microVU 重编译器 1 Dolphin 任天堂GameCube与Wii模拟器 有动态重编译选项 DeSmuME 任天堂DS模拟器 有动态重编译选项 2 参见 编辑二进制重编译器 二进制翻译 即时编译参考资料 编辑 PCSX2 Playstation 2 Emulator News www pcsx2 net 2017 02 09 原始内容存档于2005 10 29 英国英语 DeSmuME desmume org 2017 02 09 原始内容存档于2009 02 27 美国英语 外部链接 编辑Dynamic recompiler tutorial 页面存档备份 存于互联网档案馆 Blog posts about writing a MIPS to PPC dynamic recompiler 取自 https zh wikipedia org w index php title 动态重编译 amp oldid 69853115, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。