Differences in Addressable Memory
来源:互联网 发布:快客淘宝软件 编辑:程序博客网 时间:2024/05/16 10:11
Differences in Addressable Memory
The first thing most developers notice is that 64-bit processors provide a huge leap in the amount of physical and virtual memory that can be addressed.
- 32-bit applications on 32-bit platforms can address up to 2 GB.
- 32-bit applications built with the /LARGEADDRESSAWARE:YES linker flag on 32-bit Windows XP or Windows Server 2003 with the special /3gb boot option can address up to 3 GB. This constrains the kernel to only 1 GB which may cause some drivers and/or services to fail.
32-bit applications built with the /LARGEADDRESSAWARE:YES linker flag on the 32-bit editions of Windows Vista, Windows Server 2008, and Windows 7 can address memory up to the number specified by the boot configuration data (BCD) element IncreaseUserVa. IncreaseUserVa can have a value ranging from 2048, the default, to 3072 (which matches the amount of memory configured by the /3gb boot option on Windows XP). The remainder of 4 GB is allocated to the kernel and can result in failing driver and service configurations.
For more information about BCD, see Boot Configuration Data on MSDN.
- 32-bit applications on 64-bit platforms can address up to 2 GB, or up to 4 GB with the /LARGEADDRESSAWARE:YES linker flag.
- 64-bit applications use 43 bits for addressing, which provides 8 TB of virtual address for applications and 8 TB reserved for the kernel.
Beyond just memory, 64-bit applications that use memory-mapped file I/O benefit greatly from the increased virtual address space. The 64-bit architecture also has improved floating-point performance and faster passing of parameters. Sixty-four-bit processors have double the number of registers, of both general purpose and streaming SIMD extensions (SSE) types, as well as support for SSE and SSE2 instruction sets; many 64-bit processors even support SSE3 instruction sets.
Specifying Large-Address-Aware When Building
It is a good practice to specify large-address-aware when building 32-bit applications, by using the linker flag /LARGEADDRESSAWARE, even if the application is not intended for a 64-bit platform, because of the advantages that are gained at no cost. As explained earlier, enabling this flag for a build allows a 32-bit program to access more memory with special boot options on a 32-bit OS or on a 64-bit OS. However, developers must be careful that pointer assumptions are not made, such as assuming that the high-bit is never set in a 32-bit pointer. In general, enabling the /LARGEADDRESSAWARE flag is a good practice.
Thirty-two-bit applications that are large-address-aware can determine at run time how much total virtual address space is available to them with the current OS configuration by callingGlobalMemoryStatusEx. The ullTotalVirtual result will range from 2147352576 bytes (2 GB) to 4294836224 bytes (4 GB). Values that are larger than 3221094400 (3 GB) can only be obtained on 64-bit editions of Windows. For example, if IncreaseUserVa has a value of 2560, the result is ullTotalVirtual with a value of 2684223488 bytes.
- Differences in Addressable Memory
- CAM(Content Addressable Memory)介绍
- Better IO through byte-addressable,persistent memory 论文笔记~
- Differences in different C implementations
- word addressable and byte addressable
- Differences
- [coding] Threading differences in C# and Java
- Differences in IS-IS and OSPF encapsulation
- JDev 11.1.2: Differences in Table Behavior
- Differences between "in"/"out" and "nocopy"
- Differences between Protocol and Profile in Bluetooth
- Differences between alert,confirm,prompt in Javascript
- Differences between String and StringBuilder in Java
- difference-in-differences with fixed effects
- differences in python 2 and python 3
- Differences between dependencymanagement and dependencies in maven
- in!memory.600
- In-Memory Database Systems
- “印刷文化”的光环,没我们想得那么荣耀
- java面试题
- 九章算法面试题20 寻找重复的URL
- 自动消失的弹窗效果
- 个人经验总结:MySQL数据库优化技巧集锦
- Differences in Addressable Memory
- string and stringstream
- Maven安装jar
- 使用storyboard实现页面跳转,简单的数据传递(转载)
- 鸡啄米vc++2010系列4(消息机制)
- 工作中用到的一点知识点总结
- 11 Rules All Programmers Should Live By
- XHTML简介
- C语言之流水线作业问题