我知道很多人一看到这个问题就会立刻喊出“Java”,但不,我知道Java的优点。请允许我先解释一下我的问题。
通常情况下,如果我们想要在系统上以本地速度运行程序,无论是Windows、Mac OS X还是Linux,我们需要从源代码进行编译。如果你想在你的系统上运行另一个系统的程序,你需要使用虚拟机或模拟器。虽然这些工具允许您在非本机操作系统上使用所需的程序,但有时会出现性能和故障问题。
我们还有一个名为“JIT编译器”的较新编译器,其中编译器将在执行之前将字节码程序解析为本机机器语言。 JIT编译器的性能可能会大大提高,但性能仍然不同于在本机系统上运行它。
Linux上的另一个程序WINE也是在Linux系统上运行Windows程序的好工具。我曾尝试在其中运行Team Fortress 2,并尝试进行一些设置实验。在Windows上,我在1280 x 1024的中高设置下得到了约40帧每秒的速度。在Linux上,我需要将所有设置调低到1280 x 1024才能获得约40帧每秒的速度。有两个值得注意的事情:
1. 多边形模型设置似乎不会影响帧速率,无论我将它设置为低或高。 2. 当有后处理效果或某些需要操作当前帧绘制像素的特殊效果时,帧速率会降至10-20帧每秒。
从这一点上来看,普通多边形渲染是完全正常的,但当涉及到需要图形卡完成的新渲染方法时,速度就会变慢。
总之,这个问题相当理论化。我们能做些什么吗?我看到WINE可以运行STEAM和Team Fortress 2。虽然有缺陷,但它们可以以较低的设置运行。或者,我也应该问一下,“是否可能在不重新编译源代码的情况下将一个系统上的整个程序翻译到另一个系统并获得本地速度?”我看到我们还有AOT编译器,是否可能将其用于此类问题?或者有许多限制(如DirectX调用或软件架构差异)使得没有缺陷且非本机系统的程序能以本地速度运行成为不可能?
通常情况下,如果我们想要在系统上以本地速度运行程序,无论是Windows、Mac OS X还是Linux,我们需要从源代码进行编译。如果你想在你的系统上运行另一个系统的程序,你需要使用虚拟机或模拟器。虽然这些工具允许您在非本机操作系统上使用所需的程序,但有时会出现性能和故障问题。
我们还有一个名为“JIT编译器”的较新编译器,其中编译器将在执行之前将字节码程序解析为本机机器语言。 JIT编译器的性能可能会大大提高,但性能仍然不同于在本机系统上运行它。
Linux上的另一个程序WINE也是在Linux系统上运行Windows程序的好工具。我曾尝试在其中运行Team Fortress 2,并尝试进行一些设置实验。在Windows上,我在1280 x 1024的中高设置下得到了约40帧每秒的速度。在Linux上,我需要将所有设置调低到1280 x 1024才能获得约40帧每秒的速度。有两个值得注意的事情:
1. 多边形模型设置似乎不会影响帧速率,无论我将它设置为低或高。 2. 当有后处理效果或某些需要操作当前帧绘制像素的特殊效果时,帧速率会降至10-20帧每秒。
从这一点上来看,普通多边形渲染是完全正常的,但当涉及到需要图形卡完成的新渲染方法时,速度就会变慢。
总之,这个问题相当理论化。我们能做些什么吗?我看到WINE可以运行STEAM和Team Fortress 2。虽然有缺陷,但它们可以以较低的设置运行。或者,我也应该问一下,“是否可能在不重新编译源代码的情况下将一个系统上的整个程序翻译到另一个系统并获得本地速度?”我看到我们还有AOT编译器,是否可能将其用于此类问题?或者有许多限制(如DirectX调用或软件架构差异)使得没有缺陷且非本机系统的程序能以本地速度运行成为不可能?