尽管有 JIT,是什么让 web.archive.org 上的 DosBox 如此缓慢?
What makes DosBox on web.archive.org so slow despite JIT?
我想看看我能不能玩Exile 2 from web.archive.org,我发现我需要先安装它,这需要很长时间。鉴于我基本上是在 x86 计算机上模拟 x86 机器,DosBox 支持 dynarec(动态重新编译)并且现代浏览器支持 JITing JavaScript 代码(并且 Emscripten 生成 asm.js,这应该很容易 JIT ), 是什么让它如此缓慢?换句话说,瓶颈可能是什么?
Dosbox使用Emterpreter编译,比纯asmjs版本慢:
Emterpreter 是一个将 Emscripten 的 asm.js 输出编译成二进制字节码的选项。它还生成一个能够执行该字节码的解释器("Emscripten interpreter",因此是 Emterpreter)。这使您可以将项目或项目的一部分编译为将被解释的字节码,而不是将由 JavaScript 引擎直接执行的 asm.js。
第二个原因是dosbox的emscripten端口中的Dynamic recompilation
还不可用。要使动态创建 asmjs 代码成为可能,需要做很多工作。
我想看看我能不能玩Exile 2 from web.archive.org,我发现我需要先安装它,这需要很长时间。鉴于我基本上是在 x86 计算机上模拟 x86 机器,DosBox 支持 dynarec(动态重新编译)并且现代浏览器支持 JITing JavaScript 代码(并且 Emscripten 生成 asm.js,这应该很容易 JIT ), 是什么让它如此缓慢?换句话说,瓶颈可能是什么?
Dosbox使用Emterpreter编译,比纯asmjs版本慢:
Emterpreter 是一个将 Emscripten 的 asm.js 输出编译成二进制字节码的选项。它还生成一个能够执行该字节码的解释器("Emscripten interpreter",因此是 Emterpreter)。这使您可以将项目或项目的一部分编译为将被解释的字节码,而不是将由 JavaScript 引擎直接执行的 asm.js。
第二个原因是dosbox的emscripten端口中的Dynamic recompilation
还不可用。要使动态创建 asmjs 代码成为可能,需要做很多工作。