有啥好方法可以指示计算机是不是可以运行特定的程序/软件?

Posted

技术标签:

【中文标题】有啥好方法可以指示计算机是不是可以运行特定的程序/软件?【英文标题】:Is there any good way to get a indication if a computer can run a specific program/software?有什么好方法可以指示计算机是否可以运行特定的程序/软件? 【发布时间】:2012-05-04 07:33:06 【问题描述】:

如果计算机能够运行程序/软件而没有任何性能问题,是否有任何好方法可以使用纯 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

那样我只能在用户计算机上计算这些分数然后比较它们,只要我使用相同的算法,但我不知道任何这样的算法,它足以真正-world 软件 供桌面使用。

【问题讨论】:

什么样的软件?游戏、数字运算实用程序、网络密集型产品、I/O 受限应用程序?有很多不同的变量,而您对您要确定的内容却知之甚少。 各种。我知道有很多变量,因此如果我从软件创建者那里收到一些信息,那么问题,某种类型的指示可能是可能的 在下面查看我的答案。答案(计算机能否运行)更多地取决于已安装的库/驱动程序/硬件,而不是处理器/GPU 功能。为驱动程序/库编写测试可能会更棘手,但难度不大。 【参考方案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) 系统版本(Service Pack 编号、操作系统版本(高级专业等) 窗口管理器(OSX 上的某些应用需要 X11 才能运行,Linux 上的某些应用只能在 KDE 上运行,等等)

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

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

【讨论】:

一般来说:在旧硬件之前优先更新软件(库),对吗?此外,您能否添加更多您认为有用的好问题,这些问题不是自我解释的(用户可能明白,如果她/他想播放音乐,它需要一个声音设备),例如“DirectX/OpenGL/3D 加速”。谢谢 没问题。我添加了更多问题(要求),请参阅编辑。【参考方案2】:

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

【讨论】:

我将运行一些代码来尝试提出一个好的建议,如果计算机能够运行该软件。感谢您告诉“着色器模型”,您是否知道其他通常需要检查的重要内容?谢谢 内存、速度(#cores 等)。基本上,您首先需要进行一些研究。您需要了解您的应用程序对 GPU 征税多少(吞吐量:每像素平均计算等),然后您可以将其与生成卡的功能进行比较,然后可能会推荐用户可以选择的设置,或者您可能会强制一。根据您实际执行的操作,这可能是一个相当复杂的过程。 您可能想概括一下,这是一种有意义的方式,可以减少不断增加的复杂性。着色器模型,内存可能是一个好的开始,也可能是结束点,具体取决于您在做什么。

以上是关于有啥好方法可以指示计算机是不是可以运行特定的程序/软件?的主要内容,如果未能解决你的问题,请参考以下文章

用opencv实现动检,光照变化有啥好的解决办法啊?

新手学习C语言,有啥好的书籍值得推荐?

将 CopyData 用于提升的应用程序有啥好的替代方法

java面向对象这一块我老是搞不懂,你们有啥好的学习方法可以告诉我吗

有啥好方法可以简化由多个功能包装的组件?

git:存储库会自然膨胀吗?有啥好的做法可以缓解这种情况