对于普通读者:saga™继续......
我的应用程序在我的开发机器上运行良好 - 这是在5年前购买的一款相当不错的游戏装备。因此,它是64位,具有2.2GHz的时钟速度,并具有2GB的内存。
然而,工作中的机器是标准的戴尔问题办公室计算机,甚至很难启动我的应用程序,更不用说运行它了。(解释......我可以想象人们会对我尖叫:“你究竟在做什么来要求这样的规格?”好吧,我正在进行大量的实时图像分析和音频生成那么。)
我们的团队有预算购买专用笔记本电脑(需要便携式)来运行它。所以现在我的任务是生成最低要求的规格。
我可以使用哪些工具来确定能够轻松运行我的应用程序的最低规格?
更新:到目前为止,答案虽然有用,但更多地关注分析的替代方案。所以我已经拿出一笔赏金来看看是否有任何软件会做这类事情。
答案 0 :(得分:5)
您是否可以访问优秀的个人资料?我认为理解应用程序中的性能瓶颈是值得的。如果事实证明您的应用程序受CPU限制,那么您显然会考虑在高端处理器上进行挥霍。应用程序是多线程的吗?如果是这样,您的应用程序是利用多个处理器还是由于同步而被序列化?
如果应用程序是IO绑定的,也许您应该考虑使用SSD驱动器。
也许应用程序花费太多时间分页?等...
如果您有权访问Visual Studio 2010 Ultimate,我建议您查看Concurrency Profiler。它将帮助您可视化程序中发生的情况并确定性能瓶颈。它将向您显示您的应用程序花费时间的位置:等待IO,内存管理等。虽然此工具肯定不会告诉您最低硬件要求是什么,但它应该让您对硬件改进有所了解将帮助您的应用程序更好地运行。如果您没有VS2010,您可能可以与任何优秀的分析器进行类似的分析。 Concurrency Visualizer的一个很酷的事情是它专注于暴露并发和多线程性能问题。
答案 1 :(得分:1)
没有什么能比现实世界的测试更好......
尝试在各种硬件上运行您的应用,并根据您对可接受性能的感知提出建议的最低要求。
注意:绝对最低硬件要求与建议的最低可接受要求之间通常存在很大差异(听起来就像您真正追求的那样)。
答案 2 :(得分:0)
一种选择是创建一系列具有不同系统配置的虚拟机,并在每个虚拟机中尝试使用您的应用程序(您希望在高性能计算机上执行此操作)。这样,您可以调整VM具有的内存量,CPU类型等,并模拟在各种系统上测试软件。在测试时,您可以使用Windows任务管理器查看应用程序使用的主机CPU和内存量。为了获得舒适的体验,您将希望您的应用程序尽可能地适合物理内存(对于操作系统和其他后台服务,大约需要1-1.5 GB)。
另请注意您的应用是否具有需要硬件支持的任何功能(DirectX 11,CUDA等),并确保将其包含在您的硬件要求中。
答案 3 :(得分:0)
从简短的信息来看,它听起来并不像你的PC是一个特别高的规格。您看到的戴尔机器的规格是什么样的运行速度很慢?
如果'工作'机器只是糟糕的软件构建(猜测),我会尝试另一台PC 标准XP磁盘控制器驱动程序等。)
我通常不建议沿着虚拟机路径走下去,因为这对于限制RAM的使用是唯一有益的。但是,如果您需要检查备用OS / Service Pack,那么VM是一个很好的方法。
最后你说应用程序加载速度慢,加载时做了什么?查看性能监视器以查看是否受磁盘,RAM或CPU约束可能是一个想法。使用Google查找有用的计数器来监控每个。
答案 4 :(得分:0)
请原谅我说明明显但是:
使用您的软件检查您的软件的硬件要求。
我不太明白为什么您的开发机器的规格不仅仅是您打算购买的笔记本电脑所需的规格。但如果由于某种原因这不够好,请在其他规格的硬件上运行您的软件。例如,您可以从开发计算机中获取1GB RAM,以查看可用内存较少的情况。
有大量的基准测试软件可用于各种任务。例如,LINPACK用于对超级计算机进行基准测试。所有这些现成的基准测试以及一般方法中的缺陷是,它们只能为您提供有关计算机如何运行基准测试的良好信息。将基准测试结果转换为使用您的软件预测硬件性能更像是一门艺术,而不是一门科学。在超级计算机世界中,组织在购买之前在新平台上对自己的关键应用程序进行基准测试。