Memory management 什么构成良好的记忆模式?

Memory management 什么构成良好的记忆模式?,memory-management,tradeoff,Memory Management,Tradeoff,在设计任何桌面应用程序时,是否有关于应用程序应使用多少内存的一般规则 对于重量级应用程序,这些应用程序可以很容易理解,或者至少可以分析,比如Firefox或Google Chrome。但对于较小的实用程序或业务线应用程序,可以接受的内存使用量是多少 我问这个问题是因为我最近在内存使用和性能之间遇到了一个折衷方案,我想知道在这方面是否有共识 编辑:平台是Windows XP,适用于机器只能运行富internet应用程序的用户 我的具体权衡问题是在内存中缓存大量图像。如果可能的话,我想让我的应用程序

在设计任何桌面应用程序时,是否有关于应用程序应使用多少内存的一般规则

对于重量级应用程序,这些应用程序可以很容易理解,或者至少可以分析,比如Firefox或Google Chrome。但对于较小的实用程序或业务线应用程序,可以接受的内存使用量是多少

我问这个问题是因为我最近在内存使用和性能之间遇到了一个折衷方案,我想知道在这方面是否有共识

编辑:平台是Windows XP,适用于机器只能运行富internet应用程序的用户

我的具体权衡问题是在内存中缓存大量图像。如果可能的话,我想让我的应用程序缓存尽可能多的用户的内存将允许。考虑到目前的内存压力,我这样做是为了让应用程序的缓存达到某个最大限制


但是什么是一个好的数字呢?你怎么想出一个?这就是我要问的问题。

这取决于您的目标PC硬件。如果您的应用程序使用了太多内存,那么在windows页面运行时,它会变慢。测试!在你的折衷方案中尝试两种选择,如果有意义的话,在两者之间尝试一些。在用户使用的典型机器上运行测试,并打开大量其他应用程序。因此,对于大多数人来说,这是Outlook,可能是Internet Explorer(或您选择的邮件客户端/浏览器)的一个或两个实例。我在一个组织中工作,我的应用程序的使用也可能会运行一些其他自定义应用程序,因此我们也会使用那些运行的应用程序进行测试。我们发现我们的应用程序使用了太多的内存,使得切换应用程序的速度非常慢,所以我们稍微降低了应用程序的速度,以减少其内存使用。
如果您感兴趣,我们的目标硬件最初是512Mb机器,因为这是我们的通用标准规范工作站。由于这个应用程序,一些个人电脑不得不升级到1Gb。我们现在已经稍微减少了它的RAM使用量,但它是用VB.NET编写的,而且使用的大部分内存似乎都是框架。PerfMon说进程使用了大约200Mb(峰值),但托管堆只有2Mb左右

这取决于您的目标PC硬件。如果您的应用程序使用了太多内存,那么在windows页面运行时,它会变慢。测试!在你的折衷方案中尝试两种选择,如果有意义的话,在两者之间尝试一些。在用户使用的典型机器上运行测试,并打开大量其他应用程序。因此,对于大多数人来说,这是Outlook,可能是Internet Explorer(或您选择的邮件客户端/浏览器)的一个或两个实例。我在一个组织中工作,我的应用程序的使用也可能会运行一些其他自定义应用程序,因此我们也会使用那些运行的应用程序进行测试。我们发现我们的应用程序使用了太多的内存,使得切换应用程序的速度非常慢,所以我们稍微降低了应用程序的速度,以减少其内存使用。
如果您感兴趣,我们的目标硬件最初是512Mb机器,因为这是我们的通用标准规范工作站。由于这个应用程序,一些个人电脑不得不升级到1Gb。我们现在已经稍微减少了它的RAM使用量,但它是用VB.NET编写的,而且使用的大部分内存似乎都是框架。PerfMon说进程使用了大约200Mb(峰值),但托管堆只有2Mb左右

这完全取决于您的目标平台,这或多或少是一个商业决策。您需要的内存越多,客户能够使用您的软件的数量就越少。要问的一些问题:您的客户(或潜在客户)的计算机中安装了多少内存?其他哪些应用程序将与您的应用程序同时运行?您的应用程序是否被认为是专门运行的(比如一个全屏电脑游戏),或者是一个主要在后台运行的实用程序,或者经常从其他应用程序切换到它

Hear是一项调查的一个例子,该调查显示通过Steam玩游戏的人的系统中安装的RAM的分布情况(来源:):

  • 小于96MB 0.01%
  • 96MB至127MB 0.01%
  • 128MB到255MB 0.21%
  • 256MB到511MB 5.33%
  • 512 Mb到999 Mb 19.81%
  • 1 Gb至1.49 Gb 30.16%
  • 1.5 Gb至1.99 Gb 6.10%
  • 2.0 Gb 38.37%

在我的领域(电脑游戏)中,我从这样的调查中得出的一个结论是,我可以合理地预期,几乎所有的用户都拥有512MB或更多,绝大多数用户拥有1GB或更多。对于一款本应独家运行的电脑游戏来说,这意味着400 MB左右的工作空间是相当安全的,并且几乎不会限制任何人,如果它为产品提供了显著的附加值,那么可能会有一个800 MB左右的工作空间。

这完全取决于您的目标平台,这或多或少是一个商业决策。您需要的内存越多,客户能够使用您的软件的数量就越少。要问的一些问题:您的客户(或潜在客户)的计算机中安装了多少内存?其他哪些应用程序将与您的应用程序同时运行?您的应用程序是否被认为是专门运行的(比如一个全屏电脑游戏),或者是一个主要在后台运行的实用程序,或者经常从其他应用程序切换到它

Hear是一项调查的一个例子,该调查显示通过Steam玩游戏的人的系统中安装的RAM的分布情况(来源:):

  • 小于96MB 0.01%
  • 96MB至127MB 0.01%
  • 128MB到255MB 0.21%
  • 256MB到511MB 5.33%
  • 512 Mb到999 Mb 19.81%
  • 1 Gb至1.49 Gb 30.16%
  • 1.5 Gb至1.99 Gb 6.10%
  • 2.0 Gb 38.37%
我想得出一个结论