gpt4 book ai didi

.NET 优化的 Int32

转载 作者:行者123 更新时间:2023-12-01 22:11:20 25 4
gpt4 key购买 nike

在阅读 70-536 培训套件时,它指出:

The runtime optimizes the performance of 32-bit integer types (Int32), so use those types for counters and other frequently accessed integral variables.

这仅适用于 32 位环境吗? Int64 是否会在 64 位环境中占据主导地位,或者 Int32 仍然是更好的选择?

最佳答案

这是一个有趣的表达方式。运行时间与它没有太大关系。CPU 专为处理 32 位整数而设计,这就是它们使用效率最高的原因。

在 64 位环境中,它又取决于 CPU。然而,至少在 x86 CPU 上(据我所知,这是 .NET 运行的唯一地方),32 位整数仍然是默认值。这些寄存器只是进行了扩展,以便可以容纳 64 位值。但 32 仍然是默认值。

因此更喜欢 32 位整数,即使在 64 位模式下也是如此。

编辑:“默认”可能不是正确的词。 CPU只支持一些指令,这些指令定义了它可以处理哪些数据类型,不能处理哪些数据类型。那里没有“默认”。然而,通常存在一个 CPU 设计用于有效处理的数据大小。在 x86 上,在 32 位和 64 位模式下,即 32 位整数。 64 位值通常不会更昂贵,但它们确实意味着更长的指令。我还相信,至少支持 64 位的 Pentium 4 在 64 位操作下速度明显较慢,尽管在最新的 CPU 上,这部分不应该成为问题。 (但指令大小可能仍然是)

小于 32 位值更令人惊讶。是的,传输的数据减少了,这很好,但 CPU 仍然一次抓取 32 字节。这意味着它必须屏蔽部分值,因此这些变得更慢。

关于.NET 优化的 Int32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/530690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com