【问题标题】:What tools can I use to determine the hardware requirements of my application?我可以使用哪些工具来确定我的应用程序的硬件要求?
【发布时间】:2011-03-14 18:06:54
【问题描述】:

对于普通读者:传奇仍在继续……

我的应用在我的开发机器上运行良好 - 这是我购买的(5 年前)作为一个相当不错的游戏装备。因此,它是 64 位的,具有 2.2GHz 时钟速度和 2GB 内存。

然而,工作中的机器是标准的戴尔办公电脑,甚至很难启动我的应用程序,更不用说运行它了。

(解释...我可以想象人们对我尖叫:“你到底在做什么来要求这样的规范?”嗯,我正在做很多实时图像分析和音频生成. 所以那里。)

我们的团队有预算购买一台专用笔记本电脑(需要便携)来运行它。所以现在我的任务是生成最低要求的规范。

我可以使用哪些工具来确定能够轻松运行我的应用的最低规格?

更新:到目前为止的答案虽然有用,但更多地关注分析的替代方法。所以我提出了一个赏金,看看是否有任何软件可以做这种事情。

【问题讨论】:

  • 您总是可以尝试稍微优化您的代码,以便它可以在较低规格的机器上运行。失败了,您只需要在各种候选机器上测试您的应用程序即可了解获得可接受的性能所需的条件。
  • 谢谢保罗。在我有限的开发技能允许的范围内,我已经进行了优化。 (如果您好奇,请随时查看源代码。我将非常感谢任何帮助!)后一个选项是我的备份,但由于我们要购买一台专用机器,所以很高兴得到它第一次就对了。
  • 这不足为奇......标准戴尔办公电脑运行 Celeron 和慢速内存。如果它在上述规格上运行良好,你不能用它作为基准吗?显然,如果您长时间在笔记本电脑上运行大量计算,笔记本电脑会出现发热问题,但如今硬件相当便宜。只是不要获得省电模式。 ;)

标签: windows performance hardware profiling requirements


【解决方案1】:

您可以使用好的分析器吗?我认为了解应用程序中的性能瓶颈是值得的。如果事实证明您的应用程序受 CPU 限制,那么您显然需要考虑购买高端处理器。应用程序是多线程的吗?如果是这样,您的应用程序是在利用多个处理器,还是因为同步而被序列化?

如果应用程序受 IO 限制,也许您应该考虑使用 SSD 驱动器。

也许应用程序在分页上花费了太多时间?等等……

如果您可以访问 Visual Studio 2010 Ultimate,我建议您查看Concurrency Profiler。它将帮助您可视化程序中正在发生的事情并识别性能瓶颈。它会告诉你你的应用程序在哪里花费时间:等待 IO、内存管理等。虽然这个工具肯定不会告诉你最低硬件要求是什么,但它应该能让你很好地了解哪些硬件改进将帮助您的应用更好地执行。 如果您没有 VS2010,您可能可以使用任何好的分析器进行类似的分析。 Concurrency Visualizer 最酷的地方在于它专注于揭示并发和多线程性能问题。

【讨论】:

  • 我目前只有Professional,但如果我能升级我会认真考虑。性能分析工具看起来非常有用。我不认为您可以推荐任何其他分析器?
  • 嗨,Tom,我希望升级不要那么贵 :( 真可惜。一个很棒的免费选项是“xperf”。它带有 Windows 性能分析工具(可在此处获得:@987654322 @ )。xperf 非常强大,但学习曲线陡峭。它不像 VS 分析器那样掌握你的手。看起来还有一个名为“Sleepy”的开源分析器,可在此处获得codersnotes.com/sleepy,但是我从来没用过。
【解决方案2】:

没有什么比真实世界的测试更好...

尝试在各种硬件上运行您的应用,并根据您对可接受性能的看法提出建议的最低限度。

注意:绝对最低硬件要求和推荐的最低可接受要求之间通常存在很大差异(这听起来像是您真正追求的)。

【讨论】:

    【解决方案3】:

    一个选项是创建一系列具有不同系统配置的虚拟机,并在每个虚拟机中试用您的应用(您需要在高性能机器上执行此操作)。这样,您可以调整 VM 的内存量、CPU 类型等,并在各种系统上模拟测试软件。测试时,您可以使用 Windows 任务管理器查看您的应用程序正在使用多少主机 CPU 和内存。为了获得舒适的体验,您会希望您的应用尽可能地适应物理内存(加上大约 1-1.5 GB 用于操作系统和其他后台服务)。

    另外请注意您的应用是否有任何需要硬件支持的功能(DirectX 11、CUDA 等),并确保将其包含在您的硬件要求中。

    【讨论】:

      【解决方案4】:

      从简短的信息来看,您的 PC 似乎不是特别高的规格。你见过什么规格的戴尔机器运行缓慢?

      我会尝试另一台 PC,以防“工作”机器只是糟糕的软件构建(猜测 标准 XP 磁盘控制器驱动程序等)。

      我通常不建议采用 VM 路线,因为这实际上只对限制 RAM 使用有任何好处。但是,如果您需要检查替代操作系统/服务包,那么 VM 是一个不错的选择。

      最后你说应用加载缓慢,加载时它在做什么?查看性能监视器以查看它是否受磁盘、RAM 或 CPU 限制可能是一个想法。使用 Google 查找有用的计数器来监控每个计数器。

      【讨论】:

      • 关于规格,按照现代标准,我的开发 PC 并不是那么高规格:双核 AMD64 运行频率为 2.21GHz,配备 2GB(我假设是)DDR2 内存。工作计算机似乎都是这个的一半:即运行在 1GHz 左右的单个 32 位内核,通常具有 1GB 的 RAM。
      • 台式机中的 1Ghz CPU 将会非常陈旧,我猜很可能是 Pentium 3,它甚至可能无法显示大多数现代 Flash 网页。我唯一要检查的是使用性能监视器 RAM 使用率是否很高,因此它开始在 1Gb RAM 机器上进行交换。真的 1Gb RAM 对于非专业应用程序来说是一个合适的最小值,所以你应该尝试适应它。在 CPU 上,至少选择您的 CPU(和 Intel 同等产品),查看 Toms Hardware 以计算出 Intel、移动设备等的同等产品。
      【解决方案5】:

      请原谅我说的 b*****g 很明显,但是:

      使用您的软件检查您的软件的硬件要求。

      我不太明白为什么您的开发机器的规格不仅仅是您打算购买的笔记本电脑所需的规格。但是,如果由于某种原因这还不够好,请在具有其他规格的某些硬件上运行您的软件。例如,您可以从您的开发机器中取出 1GB RAM,看看在可用内存较少的情况下情况如何。

      有大量的基准测试软件可用于各种任务。例如,LINPACK 广泛用于对超级计算机进行基准测试。所有这些现成的基准测试以及一般方法中的缺陷在于,它们只能为您提供有关计算机如何运行基准测试的良好信息。使用您的软件将基准测试结果转化为对硬件性能的预测与其说是一门科学,不如说是一门艺术。在超级计算机世界中,组织在购买之前在新平台上对自己的关键应用程序进行基准测试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-13
        • 1970-01-01
        • 2023-03-28
        • 2013-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多