如果使用32位整型会溢出,那么是否可以使用一个(2)

what alloc seq(w) seq(r) rand(w) rand(r) free

-----------------------------------------------------------

uint32_t03121004480444165

uint64_t064817244824490130

bad40_t068219345734492130

packed40_t0116455261816176130

我们看到,位字段的额外开销是微不足道的,但是当以友好的方式线性访问数据时伴随位字段引用的操作符重载产生的开销则相当显著(大概有3倍)。在另一方面,随机访问产生的开销则无足轻重。

这些时间表明简单的使用64位整型会更好,因为它们在整体性能上要比位字段好(尽管占用更多的内存),但是显然它们并没有考虑随着数据集增大带来的缺页开销。一旦程序内存超过RAM大小,结果可能就不一样了(未亲自考证)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5ea90c1e3758bcb46746529433d807ee.html