4

是否有任何好方法可以通过要求尽可能少的信息来指示计算机是否能够使用纯 JavaScript(Google 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

这样我就只能在用户计算机上计算这些分数然后比较它们,只要我使用相同的算法,但我不知道任何这样的算法,它对于现实世界的桌面软件来说已经足够了.

4

2 回答 2

1

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

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

例如,我可以在我的 Pentium III Coppermine(使用 FreeBSD 和 X 服务器)上运行 Firefox 11,但如果您在具有六核 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)
  • 系统版本(Service Pack 编号、操作系统版本(高级专业版等)
  • 窗口管理器(OSX 上的一些应用程序需要 X11 才能运行,Linux 上的一些应用程序只能在 KDE 上运行,等等)

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

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

于 2012-05-04T07:53:29.720 回答
0

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

于 2012-05-04T10:02:27.153 回答