none
同一个wpf程序,在性能较好的机器上,使用内存25M,性能比较差的机器上,使用内存52M,如何解释? RRS feed

  • 问题

  • 如题,因为需要给客户一个解释,寻求官方说法,最好是微软官方的技术文档等等。

    愿意提供具体硬件参数,呵呵。

    2011年4月1日 9:10

答案

  • 这个一般是很难给出一个统一的解释的,我们还是根据运行时候的实际情况开解释吧。毕竟一个系统本身的情况就有很多,各种外部环境和内部软件都会对实际运行造成影响。特别是这种.Net 托管程序,很难说运行环境就能够给你一个大体一致的数据,内存使用量。

    至于你讲内存换显存什么的,是有可能的,甚至为了达到更好的性能,大量使用女尼内存和页面交换也是可能的。 我们还是具体看数据,特别是 VMMap和Process Monitor这两个工具


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年4月3日 6:09
    版主

全部回复

  • 这个很好理解的,不同的机器有着不同的硬件,甚至你的操作系统也是不同的。在不同的操作系统中,你的硬件驱动和软件运行环境也是不同。因为WPF是需要CLR运行环境的,而且他的底层通过DirectX来渲染,还需要载入DX模块,和具体的硬件的资源,这些不同的资源肯定不是由你的程序代码来控制的。

    还有种情况是,即使是同一个程序,并且绝对的情况下,他不使用任何外部资源,他使用的内存也不可能一样。在运行时的不同时刻,你的代码可能调用了不同的函数,可能使用生成了不同的数据,这些内容使用的内存也不会一样。

     

    MSDN官方是不可能提供这么详细的具体内存使用的,不过微软提供了一些手段方法可以让你来查看一个程序使用的内存状况,和一个程序载入的模块状况。你看下下面三个工具吧:

     

    Sincerely,


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年4月1日 15:33
    版主
  • 非常感谢您的回复。

    补充一下:

    两台都是window7的操作系统。内存都是2G 性能好的那一台CPU比较好一点,显卡也是独立的,显存大约为1.5G,另外一台是集成显卡。显存大概为700M。

    这两个内存使用量都是平均值。

    我想知道的是,性能差的机器为什么要多使用一部分内存?是不是把显存的部分也算进去了?性能好的那台因为看不到显存使用量所以比较少?还是因哦为cpu和显卡不行,所以要拿内存牺牲一下?

    我马上参考一下你提供的这几个东东,呵呵。

    谢谢!

    2011年4月2日 1:25
  • 这个一般是很难给出一个统一的解释的,我们还是根据运行时候的实际情况开解释吧。毕竟一个系统本身的情况就有很多,各种外部环境和内部软件都会对实际运行造成影响。特别是这种.Net 托管程序,很难说运行环境就能够给你一个大体一致的数据,内存使用量。

    至于你讲内存换显存什么的,是有可能的,甚至为了达到更好的性能,大量使用女尼内存和页面交换也是可能的。 我们还是具体看数据,特别是 VMMap和Process Monitor这两个工具


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年4月3日 6:09
    版主