主题:【求助】有必要升级到Windows 7吗? -- 重庆老牛
对于普通32位Windows程序来说,使用的几乎全部是用WIN32 API,而后者的编程模型限制了最多只能使用4G线性内存地址,其中2G为操作系统使用,2G为应用程序使用(实际不到2G,只有1.7G左右),如果使用3GB模式启动操作系统,可以改成操作系统1G,应用程序3G。如果采用AWE API是可以申请到4G以上(就像DOS下通过DPMI接口可以申请到16M内存,这个接口Windows还在支持),但是无疑这样对开发是不利的,因为很少有类库支持这个API,现在手动分配/释放内存几乎是程序员的噩梦。
对于32位超过4G(其实是3.25G或3.5G)的大内存的使用,通常有几种:
1. 象你说的,用作虚拟盘,这种需要在驱动程序级别实现,实际上会造成所有I/O操作需要二次定位,对系统性能有不利影响。
2. Server Integration,可以把多个应用程序装载到不同的4G虚拟空间去,这样可以减少内存频繁分页造成的性能降低。这个是操作系统如2003 Ent自动完成的。
3. 用作Cache或数据缓冲区,如SQL Server,Oracle等可以使用AWE API申请到超过4G的内存用作缓冲,目的也是为了减少分页。
32位程序使用超过4G内存作为普通内存使用是有很大限制的,如进程通讯/共享,I/O等,所以用处不是很大。而且对于桌面系统来说,即使支持Server Integration,但在把所有内存装满之前,CPU已经不堪重负。
桌面系统中需要大内存的通常都是设计类和科学计算类软件,如3ds max等,对这类软件来说,恰好是64位计算的强项,在32位下很难搞得向64位那样好。
综上,桌面系统32位即使能使用大内存也没太大意义,通常的桌面操作如文字处理,上网聊天等4G以下已经足够,XP SP2以上已经最多能用3.5G,利用率已经很高了,实在不甘心把剩下的部分做个虚拟盘之类也不错(这个是微软原生支持的,使用的是PSE技术,硬件上从pentium pro开始就支持,那个修改版的ramdisk也是基于微软自带的程序);如果是做设计64位才是王道。(游戏另说,不知道大内存对32位游戏是否有质的帮助)。
- 相关回复 上下关系8
🙂可以使用ramdisk来充分使用内存 大溪水 字2166 2010-04-05 02:30:28
🙂好像认出4G内存不等于就能真的利用到 假设 字389 2010-04-06 03:11:41
🙂win2003 ENT版本就可以识别16G内存 大溪水 字312 2010-04-08 23:21:02
🙂2003 ENT版是可以的,但对桌面系统意义不大
🙂谢谢,搜了一下,想来想去还是上2003算了。 littles 字0 2010-04-05 22:43:39
🙂搜索gavotte ramdisk 大溪水 字651 2010-04-08 23:24:40
🙂因为我需要开虚拟机,所以还是用 2003 比较省事。 littles 字0 2010-04-09 00:10:30
🙂系统隐藏分区可以建,与win7无关。 1 瓦斯 字242 2009-09-14 02:07:00