泡泡网CPU频道 PCPOP首页      /      CPU     /      评测    /    正文

微软是祸首? Intel游戏落败深入分析

    程序员这样做可能主要是因为偷懒和非常紧张的游戏开发日程。Levicki认为游戏开发人员不会花时间手工优化代码,只是随意使用或不使用某个选项,使用Visual C++而不是Intel的编译器,因此产生浮点运算代码而不是SSE代码。

{imageTitle}

    再回到Visual Studio C++,微软的在线文档说明,使用/ARCH:SSE和/ARCH:SSE2选项编译后能够自动发挥SSE/SSE2指令的优势。这并不意味这对AMD处理器会有什么不利影响,虽然理论上Pentium 4处理非闭环循环和Pentium 4特殊指令时比Athlon 64更有效,但在实际中很少有这样的情况。

    而SSE/SSE2对AMD也有好处,甚至AMD的前首席技术长官Fred Weber也说过,单指令多数据(SIMD)是浮点运算的发展方向。

{imageTitle}

(注:单指令多数据技术是在一条指令内完成多对数据的运算,实质上是通过并行处理来提高处理器吞吐率。Intel在PentiumII的MMX技术中,就采用了SIMD,MMX是面向整数运算的,PentiumIII和更新处理器的SIMD技术是面向浮点数的。SSE就是Streaming SIMD Extensions的缩写,扩展SIMD指令流。)

{imageTitle}

    通过与几位游戏游戏开发人员交流了解到,他们在编译的时候对一些可选项非常谨慎,因为对大型软件这些可选项可能会导致编译中断。不使用编译选项有制度方面的原因,也有程序员偷懒的因素。他们每周工作80多个小时,没人有功夫去尝试编译器的选项。

     还有一个非常重要的因素,就是目前很多游戏都使用了第三方的类库和引擎,包括物理引擎、AI引擎、声音处理类库等等。在这种情况下,开发者只优化自己的代码几乎不会有什么提高。

      如果您是游戏程序员或者中间件开发人员,我们非常希望得到你们的观点。您在编程的时候考虑到为所有处理器架构做优化了么?有没有尝试过编译器的选项?为什么?<

0人已赞

关注我们

泡泡网

手机扫码关注