|
|
1
10
这完全取决于体系结构。位字段是 通常地 速度较慢,但如果您能够显著降低内存使用率,甚至可以 获得 在性能方面,由于更好的CPU缓存和类似的东西。同样的短(尽管在任何情况下都不是戏剧性的)。
最好的方法是使源代码能够轻松地切换表示(当然是在编译时)。然后您将能够在
你的具体情况
顺便说一下,换一个
另外,不要忘记过早的优化规则。先让它工作。如果结果是速度慢/不够快,只有 然后 试着加快速度。 |
|
2
2
是的,您可以使用无符号短(假设(sizeof(unsigned short)*char_bits)>=10)
少于什么?小于int?取决于系统的大小(int)?
视情况而定。int类型应该是系统中最有效的整数类型,因此使用short可能会影响性能。是否这样做将取决于系统。计时并找出答案。
对。但是编译器会自动进行转换。不过,您需要注意的一件事是有符号和无符号类型之间的转换。如果该值不匹配,则可以定义实现的确切结果。
也许吧。如果sizeof(unsigned int)==sizeof(unsigned short),则可能不是。计时看。
计时看。
计时看。 |
|
|
3
2
一个好的折衷办法是将三个值打包成32位int(其中两个位未使用)。从一个位数组中解开10位要花费很多,而且不会节省很多空间。您可以使用位字段,也可以自己动手:
您可以在这里看到它是多少额外的费用:一个位操作和一个班次的2/3(平均)为GET,三个位操作和一个班次的2/3(平均)为设置。可能还不错,尤其是当你得到的值不是设定的时候。 |
|
|
kesape · Firebase存储。下载图像阵列 4 年前 |
|
|
Rajesh K · 如何查找设备中存在的广告垃圾? 8 年前 |
|
|
Wouter A · 如何在Java中高效地存储滚动播放项属性? 8 年前 |
|
|
Nik Rubblers · 页面间离子/角度共享数据 8 年前 |
|
|
Dibyaranjan Mishra · 从SD卡删除音频 8 年前 |
|
|
4xy · 如何使日志增加日志存储容量? 8 年前 |
|
|
Shyanide · 无法访问Android外部存储中的文件 8 年前 |
|
|
Javed · laravel:如何在数据库中存储文件上载路径 8 年前 |