如果计算机可以运行特定的程序/软件,有没有好的方法来获得指示?

时间:2012-05-04 07:33:06

标签: c++ algorithm performance v8 measurement

如果计算机能够运行没有任何性能问题的程序/软件,使用纯JavaScript(谷歌V8),C ++(Windows,Mac OS和Linux),是否有任何好的方法可以指示软件创建者尽可能少的信息(如CPU得分,GPU得分)?

这样我可以给我的用户一个很好的指示,他们的计算机是否足够好以运行该软件,因此如果用户不能使用它,用户无需从头开始下载和安装它无论如何都要运行它。

我想到了基于“得分”的指示:

CPU: 230 000   (generic processor score)
GPU: 40 000    (generic GPU score)
+ Network/File I/O read/write requirements

这样我只能在用户计算机上计算得分,然后比较它们,只要我使用相同的算法,但我不知道任何这样的算法,这对于真实就足够了用于桌面使用的-world软件

2 个答案:

答案 0 :(得分:1)

我建议测试是否存在特定的库和环境(操作系统版本,视频卡存在,工作声音驱动程序,DirectX,OpenGL,Gnome,KDE)。为这些库分配优先级并使用优先级进行比较,例如视频卡的存在比KDE的存在更重要。

问题是,即使是过时的硬件也可以毫无问题地运行大多数软件(只是速度较慢),但是如果没有安装要求,最新的硬件就无法运行某些软件。

例如,我可以在我的Pentium III coppermine上运行Firefox 11(使用FreeBSD和X服务器),但如果在最新的硬件上安装带有六核i7和nVidia GTX 640的Windows XP,它仍然无法运行DirectX 11游戏

此方法不需要软件创建者的帮助,但不是100%准确。 如果您需要90 +%准确信息,请在上传前让软件创建者检查5-6复选框。例如:

  • 我的应用程序需要DirectX / OpenGL / 3D加速
  • 我的申请需要声音
  • 我的应用程序需要Windows Vista或更高版本
  • 我的应用程序需要[高带宽]网络连接

然后您可以使用这些复选框中的信息测试特定的应用程序。

修改: 我认为额外的检查可能是:

  • 视频/音频编解码器
  • 像素/顶点/几何着色器版本,GPU物理加速(可能对游戏至关重要)
  • 不再那么相关:处理器扩展(SSE2 MMX等)
  • 第三方软件,如pdf,flash等
  • 系统库(libpng,libjpeg,svg)
  • 系统版本(服务包编号,操作系统版本(高级专业人员等)
  • 窗口管理器(OSX上的某些应用程序需要X11才能运行,Linux上的某些应用程序仅适用于KDE等)

这些是我(和许多其他人)在安装不同软件时看到的实际要求。

对于旧硬件,如果计算机满足硬件要求(像素着色器版本,处理器扩展等),则有充分的理由相信软件将在系统上运行(可能更慢,但这是基准测试的基准你需要它们。)

答案 1 :(得分:0)

对于GPU,如果没有在机器上运行某些代码来测试机器是否符合规格,我认为不能获得分数。 使用GPU时,这通常会检查它能够使用的Shader模型,并且默认为较低的着色器模型(因此应用程序的复杂性较低“质量”)或告诉他们他们没有运行代码的希望因此戒烟。