6

有没有办法评估软件的最低要求?我的意思是,我如何才能发现我的应用程序需要的最小 RAM 量?

谢谢!

4

5 回答 5

5

探查器在这里帮不了你。也不会估计数据结构的大小。

分析器当然可以告诉您代码在哪里花费了最多的 CPU 时间,但它不会告诉您是否缺少性能目标——例如,您的用户是否会对任何给定系统上的应用程序性能感到满意或不满意。

简单地计算数据结构的大小,以及在任何时候可以分配多少,根本无法准确地了解一段时间内的内存使用情况。原因是内存使用由许多其他因素决定,包括您的应用程序执行多少 I/O、您的应用程序使用哪些操作系统服务,以及最重要的是您的应用程序如何使用内存的时间特性。

了解最低要求的最有效方法是

  • 确保您有一种使用对您的用户很重要的指标来衡量性能的有效方法。最好的衡量标准是响应时间。根据您的应用程序,吞吐量或每秒操作数等速率可能适用。您的测量可能是经验性的(例如,只是尝试一下),但这是最不有效的。最好使用某种仪器来完成。在 Windows 上,选择是 [ETW][1]。其他操作系统有其他合适的机制。
  • 有某种自动化的方法来执行您的应用程序。这将使您可以进行重复且可靠的测量。
  • 使用各种内存大小测量您的应用程序,看看性能从哪里开始受到影响。这也可能会暴露性能错误,从而使您的应用程序无法正常运行。如果您可以访问各种性能级别的平台,也可以使用这些平台。您没有说明您的应用程序是做什么的,但在具有 1GB 内存的上网本上进行测试对于许多(不是全部)客户端应用程序来说非常有用。

您可以对 CPU 和其他组件(如磁盘、网络或 GPU)执行相同的操作。

另请注意,这里没有简单的答案——有效地设定最低要求是真正的工作。如果您的应用程序对某个平台方面或其他方面具有参与性敏感,则尤其如此。

还有其他因素 - 例如,您的应用程序可能在一个配置中运行良好,直到用户打开另一个可能内存不足或 CPU 猪的应用程序。用户很少只打开一个应用程序。

这意味着除了指定最低要求之外,您还必须有效地设定用户期望——即解释您的应用程序何时会表现良好,何时表现不佳,以及影响性能的因素是什么。

[1]:http: //msdn.microsoft.com/en-us/library/ms751538.aspx强文本

于 2009-07-03T15:50:08.120 回答
3

理想情况下,您会根据目标受众确定软件的最低要求,然后在开发过程中在该配置上测试您的软件,以确保它提供令人满意的体验。

您可以查看运行您的软件的系统并查看您的应用程序消耗了多少内存,并使用它来指导消耗了多少内存。CPU 稍微复杂一点——您可以尝试为您的 CPU 需求建模,但准确地做到这一点可能具有挑战性。

但最终,您需要在您定位的基本系统上测试您的应用程序。

于 2009-07-03T15:38:10.620 回答
1

给定应用程序使用的数据结构,估计它们在正常使用中将占用多少空间。使用该估计,设置多个机器(虚拟或物理)以在不同场景(即不同的目标操作系统、不同的虚拟内存设置等)下测试估计。

然后衡量应用在不同场景下的性能。您的最低设置将是性能最差但仍然可以接受的机器。

于 2009-07-03T15:36:39.903 回答
0

您可以在对软件进行压力测试时尝试在软件上使用性能分析器。

于 2009-07-03T15:36:15.523 回答
0

您可以使用虚拟化在虚拟机中使用不同数量的 RAM 重复运行具有代表性的测试套件……当性能由于交换而低于可接受的水平时,您已经找到了内存需求。

于 2009-07-03T15:39:43.110 回答