none
同样的C#程序在win7 64bit下是否会占据更大的内存空间? RRS feed

  • 问题

  • 同样的C#程序在win7 64bit下是否会占据更大的内存空间?

    假设其它运行环境和数据环境都相同的情况, .net framework和C#程序是否会占用更阔内存?

    另外我想了解一下win7 64bit 但进程最大线程数和最大内存占用是多少. 谢谢


    信奎爷,无所畏惧!!
    2011年5月23日 8:08

答案

  • 应该说,从实践上,内存占用会更少。这是因为 64 位系统会具备更大的数据传输能力,一部分数据会被 Cache 在 CPU L1/L2 上而不是内存。

    但有些时候专门为 64 位设计的程序会占用更多内存,这是因为 64 位下的大多数数据结构都比 32 位大。比如一个句柄,它就是 8 字节而不是 x86 上的 4 字节。

    运行在 WOW64 上的 32 位程序会占用更多内存,因为它需要 32 位 Windows 的模拟层。

    关于最大线程的问题,这个要看您的机器硬件配置。理论上,一个线程大概占用 1.3 MB 的内存空间。


    Mark Zhou
    • 已建议为答案 Cookie Luo 2011年5月26日 7:58
    • 已编辑 mazhou 2011年5月26日 9:29 句柄字节数写错了
    • 已标记为答案 Cookie Luo 2011年6月2日 8:47
    2011年5月25日 7:51

全部回复

  • 应该不会。


    Jeffrey
    2011年5月24日 8:02
  • 不会占用更大的内存空间。

     

    进程跟线程不要开那么多。。没有意义。。尤其是远超 CPU 数量的时候,除了浪费资源,拖慢响应速度之外,没有任何意义。


    学习学习....
    2011年5月25日 3:50
  • 你好!

    你的问题我在下面连接已回复,请参考:

    http://social.microsoft.com/Forums/zh-CN/visualcshartzhchs/thread/25953612-9db7-4884-8d59-b15249fa8b05


    知识改变命运,奋斗成就人生!
    2011年5月25日 5:17
    版主
  • 应该说,从实践上,内存占用会更少。这是因为 64 位系统会具备更大的数据传输能力,一部分数据会被 Cache 在 CPU L1/L2 上而不是内存。

    但有些时候专门为 64 位设计的程序会占用更多内存,这是因为 64 位下的大多数数据结构都比 32 位大。比如一个句柄,它就是 8 字节而不是 x86 上的 4 字节。

    运行在 WOW64 上的 32 位程序会占用更多内存,因为它需要 32 位 Windows 的模拟层。

    关于最大线程的问题,这个要看您的机器硬件配置。理论上,一个线程大概占用 1.3 MB 的内存空间。


    Mark Zhou
    • 已建议为答案 Cookie Luo 2011年5月26日 7:58
    • 已编辑 mazhou 2011年5月26日 9:29 句柄字节数写错了
    • 已标记为答案 Cookie Luo 2011年6月2日 8:47
    2011年5月25日 7:51