打破2GB的障碍 [英] Breaking the 2GB barrier

查看:64
本文介绍了打破2GB的障碍的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我很快将在Windows 2003 R2 64位上部署应用程序
标准版。该应用程序也将编译为64位。

的原因之一是该应用程序将真正受益于更多的b / b
而不是2GB可用。



http://www.microsoft.com/windowsserv ... efeatures.mspx

页面表明Windows 2003 R2 64位标准版可以处理32GB内存的
。我的问题是,是否有人真的看到了这个操作系统的2GB障碍?


问候

解决方案

Frank,在64位Windows操作系统上,如果您的应用程序编译为64位,那么IS

NO 2 GB屏障。

Peter


-

联合创始人,Eggheadcafe.com开发者门户网站:
< a rel =nofollowhref =http://www.eggheadcafe.comtarget =_ blank> http://www.eggheadcafe.com

UnBlog:
http://petesbloggerama.blogspot.com



" Frank Rizzo"写道:


我将很快在Windows 2003 R2 64位上部署应用程序
标准版。该应用程序也将编译为64位。

的原因之一是该应用程序将真正受益于更多的b / b
而不是2GB可用。



http://www.microsoft.com/windowsserv ... efeatures.mspx

页面表明Windows 2003 R2 64位标准版可以处理32GB内存的
。我的问题是,是否有人真的看到了这个操作系统的2GB障碍?


问候




Frank Rizzo < no ** @no.comwrote in message

news:ud ************** @ TK2MSFTNGP02.phx.gbl ...

|我很快将在Windows 2003 R2 64位上部署应用程序

|标准版。该应用程序也将编译为64位。其中一个

|原因是应用程序将真正受益于更多

|超过2GB可用。

|

|

|
http://www.microsoft.com/windowsserv...efeatures.mspx

|页面说明Windows 2003 R2 64位标准版可以处理

|到32GB的RAM。我的问题是,是否有人真正看到过

|应用程序打破了这个操作系统的2GB障碍?

|

|问候


你在谈论什么障碍?

在谈论每个进程的用户地址空间时,以下是

的限制OS版本..

32位Windows:

所有系统:2 GB

扩展:3 GB使用4GT调整(/ 3GB标志)在boot.ini中)有效期为

XP,W2K3,W2K AS,NT4 EE

扩展:最高3GB(/ USERVA = oflag in boot.ini)XP和W2K3

" extended"要求应用程序是largeaddressaware。启用。


64位Windows:

32位应用程序:4GB。 (使用

/ platform:x86编译的.NET应用程序)

64位应用程序:7152或8192 GB(使用

/编译的.NET应用程序平台:anycpu或X64)。

anycpy是默认值。


在谈到.NET应用程序的2GB最大对象大小时,

同样的限制适用于32位和64位系统。


重要的是要注意,32位应用程序有4GB的地址空间

在64位窗口上可用,这是首选的操作环境,如果你不需要超过4GB的
。这意味着你应该使用x86平台标志编译

,以防止在x64模式下运行。

如果你真的需要更多,你必须编译你的应用程序

带有x64标志,以防止你的应用程序在X86上运行(32位

windows)。


Willy 。


" Willy Denoyette [MVP]" < wi ************* @ telenet.bewrote in message

news:ea ************* @ TK2MSFTNGP05.phx .gbl ...


>



[snip]


>

这很重要需要注意的是,32位应用程序在64位窗口上有4GB地址空间可用
,这是首选的操作环境,如果你不需要更多的东西超过4GB。这意味着您应该使用x86平台标志编译

,以防止在x64模式下运行。



这是我第一次听到这个消息。为什么32位是优先模式

64位窗口?


如果你真的需要更多,你必须编译你的应用程序

带有x64标志,以防止你的应用程序在X86上运行(32位

windows)。


Willy 。



I will soon be deploying an application on Windows 2003 R2 64-bit
Standard Edition. The app will also be compiled for 64-bit. One of the
reasons is that the application will really benefit from having more
than 2GB available to it.

The
http://www.microsoft.com/windowsserv...efeatures.mspx
page states that Windows 2003 R2 64-bit Standard Edition can handle up
to 32GB of RAM. My question is whether anyone has actually seen an
application break the 2GB barrier on this OS?

Regards

解决方案

Frank, on a 64-bit windows OS, if your app is compiled to 64-bit, there "IS
NO" 2 GB barrier.
Peter

--
Co-founder, Eggheadcafe.com developer portal:
http://www.eggheadcafe.com
UnBlog:
http://petesbloggerama.blogspot.com


"Frank Rizzo" wrote:

I will soon be deploying an application on Windows 2003 R2 64-bit
Standard Edition. The app will also be compiled for 64-bit. One of the
reasons is that the application will really benefit from having more
than 2GB available to it.

The
http://www.microsoft.com/windowsserv...efeatures.mspx
page states that Windows 2003 R2 64-bit Standard Edition can handle up
to 32GB of RAM. My question is whether anyone has actually seen an
application break the 2GB barrier on this OS?

Regards



"Frank Rizzo" <no**@none.comwrote in message
news:ud**************@TK2MSFTNGP02.phx.gbl...
|I will soon be deploying an application on Windows 2003 R2 64-bit
| Standard Edition. The app will also be compiled for 64-bit. One of the
| reasons is that the application will really benefit from having more
| than 2GB available to it.
|
| The
|
http://www.microsoft.com/windowsserv...efeatures.mspx
| page states that Windows 2003 R2 64-bit Standard Edition can handle up
| to 32GB of RAM. My question is whether anyone has actually seen an
| application break the 2GB barrier on this OS?
|
| Regards

What barrier are you talking about?
When talking about per process user address space, following are the
restrictions imposed by the OS versions..
32 bit Windows :
all systems: 2 GB
extended : 3 GB using 4GT tuning (/3GB flag in boot.ini) valid for
XP,W2K3,W2K AS, NT4 EE
extended : up to 3GB (/USERVA= oflag in boot.ini) XP and W2K3
"extended" requires the application to be "largeaddressaware" enabled.

64 bit Windows:
32 bit applications : 4GB. (.NET application compiled with
/platform:x86)
64 bit applications : 7152 or 8192 GB (.NET applications compiled with
/platform:anycpu or X64).
anycpy is the default.

When talking about the 2GB maximum object size for .NET application, the
same restriction applies for both 32 and 64 bit systems.

It''s important to note, that a 32 bit application has a 4GB address space
available on 64 bit windows, this is the prefered operating environment if
you don''t need anything more than 4GB. That means that you should compile
with the x86 platform flag, to prevent running in x64 mode.
If you really need more than this, you''ll have to compile your application
with the x64 flag, to prevent your application to run on X86 (32 bit
windows).

Willy.


"Willy Denoyette [MVP]" <wi*************@telenet.bewrote in message
news:ea*************@TK2MSFTNGP05.phx.gbl...

>

[snip]

>
It''s important to note, that a 32 bit application has a 4GB address space
available on 64 bit windows, this is the prefered operating environment if
you don''t need anything more than 4GB. That means that you should compile
with the x86 platform flag, to prevent running in x64 mode.

That''s the first time I''ve heard that. Why is 32bit the prefered mode under
64 bit windows?

If you really need more than this, you''ll have to compile your application
with the x64 flag, to prevent your application to run on X86 (32 bit
windows).

Willy.



这篇关于打破2GB的障碍的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆