有没有办法评估软件的最低要求?我的意思是,我如何才能发现我的应用程序需要的最小 RAM 量?
谢谢!
有没有办法评估软件的最低要求?我的意思是,我如何才能发现我的应用程序需要的最小 RAM 量?
谢谢!
探查器在这里帮不了你。也不会估计数据结构的大小。
分析器当然可以告诉您代码在哪里花费了最多的 CPU 时间,但它不会告诉您是否缺少性能目标——例如,您的用户是否会对任何给定系统上的应用程序性能感到满意或不满意。
简单地计算数据结构的大小,以及在任何时候可以分配多少,根本无法准确地了解一段时间内的内存使用情况。原因是内存使用由许多其他因素决定,包括您的应用程序执行多少 I/O、您的应用程序使用哪些操作系统服务,以及最重要的是您的应用程序如何使用内存的时间特性。
了解最低要求的最有效方法是
您可以对 CPU 和其他组件(如磁盘、网络或 GPU)执行相同的操作。
另请注意,这里没有简单的答案——有效地设定最低要求是真正的工作。如果您的应用程序对某个平台方面或其他方面具有参与性敏感,则尤其如此。
还有其他因素 - 例如,您的应用程序可能在一个配置中运行良好,直到用户打开另一个可能内存不足或 CPU 猪的应用程序。用户很少只打开一个应用程序。
这意味着除了指定最低要求之外,您还必须有效地设定用户期望——即解释您的应用程序何时会表现良好,何时表现不佳,以及影响性能的因素是什么。
[1]:http: //msdn.microsoft.com/en-us/library/ms751538.aspx强文本
理想情况下,您会根据目标受众确定软件的最低要求,然后在开发过程中在该配置上测试您的软件,以确保它提供令人满意的体验。
您可以查看运行您的软件的系统并查看您的应用程序消耗了多少内存,并使用它来指导消耗了多少内存。CPU 稍微复杂一点——您可以尝试为您的 CPU 需求建模,但准确地做到这一点可能具有挑战性。
但最终,您需要在您定位的基本系统上测试您的应用程序。
给定应用程序使用的数据结构,估计它们在正常使用中将占用多少空间。使用该估计,设置多个机器(虚拟或物理)以在不同场景(即不同的目标操作系统、不同的虚拟内存设置等)下测试估计。
然后衡量应用在不同场景下的性能。您的最低设置将是性能最差但仍然可以接受的机器。
您可以在对软件进行压力测试时尝试在软件上使用性能分析器。
您可以使用虚拟化在虚拟机中使用不同数量的 RAM 重复运行具有代表性的测试套件……当性能由于交换而低于可接受的水平时,您已经找到了内存需求。