2012-08-01 142 views
1

我想了解x86和x64体系结构上.Net应用程序开发中的差异。比方说,我已经在x64和x86上开发了一个具有相同源代码的应用程序,并且我的配置是anycpu(或者它可以是x64机器的x64)。这些应用程序是否都将在x64体系结构上以相同的性能运行。总结我的问题,虽然针对x64架构的好处,说比4gb更多的内存,那么在x64机器上开发的应用程序与使用anycpu配置在x86上开发的应用程序相比有什么优势?。x86 x86机器上的x64开发

回答

2

将这些应用程序都与x64体系结构相同的性能运行。总结我的问题,虽然针对x64架构的好处,说比4gb更多的内存,那么在x64机器上开发的应用程序与使用anycpu配置在x86上开发的应用程序相比有什么优势?

编号指向AnyCPU的应用程序在x64上的运行方式与在x64上完全相同。当在64位操作系统上运行,使用64位CLR AnyCPU将导致应用程序,(完全相同的方式,就好像它是建立靶向64)

他们将在64位系统上运行不同的比他们做你的32位操作系统系统,但是,由于64位CLR具有不同的优化和性能特征。

0

正如里德科普塞所说,他们将以同样的表现运行。

性能方面的考虑之外,虽然,我只是想补充一点,你还是应该尝试,如果能够测试在x64机器上的应用程序。我见过一些可能发生在AnyCPU应用程序中的陷阱:

  • 本机DLL只能在一种架构上工作。例如,如果您的应用程序是为AnyCPU编译的,但使用32位本机DLL,则它将在x86上正常运行,但会在x64上崩溃,因为64位进程将无法使用该DLL。

  • 依托IntPtr是一个特定的大小。例如,如果你认为它的大小,那将导致错误的时候,它的运行作为64位进程,其中sizeof(IntPtr)是4个字节8

+0

里德·科普塞居然说64位CLR有_different优化和性能特点_。 – khargoosh 2015-10-15 22:36:27