c# - C# 中的字节与短与整数(以及无符号变体)?

标签 c# memory types cpu

有人告诉我,只要内存大小不是一个大问题,使用 int 而不是 byte 或 short 总是更好,因为 CPU 实际上更容易处理 int(CPU 需要做额外的事情来处理字节和短裤)。在 C# 中是这样吗?

最佳答案

它更多地取决于处理器而不是语言。一个 8-bit微 Controller 几乎肯定能够比 32 位 int 更快地访问 8 位字符。

意识到这一限制后,算法设计人员可以做出相应的计划:Rijndael 的原因之一赢得 AES 比赛是因为设计者除了关心 32 位或更大处理器的执行速度之外,还计划尽可能快地制作 8 位版本。

但对于 32 位和 64 位微处理器,数据对齐和批量数据访问是关键:int访问通常比 char很多访问和long long (64 位)可能对于某些系统来说更快。 (但是 32 位机器上的 64 位操作要慢得多,所以当数据实际上在 64 位中更有意义时,使用 64 位数据类型最有意义。)

关于c# - C# 中的字节与短与整数(以及无符号变体)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5064712/

相关文章:

python - python列表类型转换

types - 为什么在有区别的联合中使用选项类型是错误的?

c# - 如何在 Avalonia 表单中强制键盘输入焦点

c# - Task<WebResponse>.Result 始终为 null

c# - 在 C# 中合并两个 .CS 文件以生成一个新类

c++ - 使用 C++ 在 32 位 Linux 中查找进程可用的剩余内存

Node.js 堆快照填充了旧版本代码的字符串

c# - 初始化集合时,哈希集对内存有什么作用?

c# - 二分查找中的比较计数

types - 递归实现特征 "Not"