![]() |
1
2
32位模式和64位模式之间存在许多差异,这两种模式都可能以某种方式扭曲性能差异。 在64位模式下,CPU有更多的寄存器,并且每个寄存器都更大,这使得一些操作可以更快地执行(例如,较高的寄存器计数可以避免内存访问) 但32位至少也有一个优势: 指针宽32位,64位模式下为64位。对于严重依赖指针的程序,这可能会导致64位模式下的内存使用率显著提高,这意味着程序数据中的一小部分将适合CPU缓存,因此64位模式下的性能可能会因缓存未命中次数增加而降低。 另一个因素是.NET框架在这两方面都不擅长。它们还没有32位和64位版本的clr之间的特性奇偶校验,对于64位代码,JIT可能无法像32位代码那样进行调优。 |
![]() |
2
0
我在释放模式下运行了以下代码。我用过 Ctrl键 + F5 运行代码。
任何CPU每次都比x86快。我正在使用.NET 4.0。 |
![]() |
3
0
.NET 3.5 SP1(即Visual Studio 2008 SP1)附带了一些性能增强功能,使jit:er更有效地内联。不幸的是,这些增强仅针对x86: How are value types implemented in the 32-bit CLR? What has been done to improve their performance? 然而,对于.NET 4.0,我发现X64和X86现在为X64提供了相同或稍好的性能。 |
![]() |
Karl · 如何引发PrintPage的事件? 2 年前 |
![]() |
Daniel · LINQ从列表的dataTable中提取部分匹配 2 年前 |
![]() |
limelatte · 如何在datagridview中屏蔽特定列? 2 年前 |
![]() |
Orsi · 选择嵌套列表的最大值和最小值。网 2 年前 |
![]() |
D T · 如何为Excel Com设置公式? 2 年前 |
![]() |
Lenin · 将数组中的每个元素与另一个数组中的相应元素相乘 2 年前 |