Dar*_*rky 7 c++ optimization 64-bit
在针对64位操作系统时,我怀疑何时使用64位整数.
有没有人做过关于生成代码速度的结论性研究?
最好使用64位整数作为funcs或方法的参数?(例如:uint64 myFunc(uint64 myVar))如果我们使用64位整数作为参数,则需要更多内存,但可能效率更高.如果我们知道某些值应该总是小于,例如10,那么我们仍然继续使用64位整数来进行此参数?
最好使用64位整数作为返回类型?使用32位作为返回值会有一些惩罚吗?
最好使用64位整数进行循环?(for(size_t i = 0; i <...))在这种情况下,我想它.使用32位变量进行循环会有一些惩罚吗?
最好使用64位整数作为指针的索引?(例如:myMemory [index])在这种情况下,我想它.对索引使用32位变量会有一些惩罚吗?
最好使用64位整数来存储类或结构中的数据?(我们不想保存到磁盘或类似的东西)
对于bool类型,最好使用64位?
64位整数和浮点数之间的转换怎么样?现在使用双打会更好吗?到目前为止,双打比浮点慢.
每次访问32位变量时都会有一些惩罚吗?
问候!
您已经成功地将一大堆问题塞进了这里的一个问题中。在我看来,您所有的问题基本上都与微观优化有关。因此,我将做出两部分的回答:
从性能的角度来看,不必担心大小,而是使用指示它们将包含的数据的类型,并信任编译器的优化器对其进行排序。
如果在开发过程中的某个时刻性能成为一个问题,请分析您的代码。然后,您可以适当地进行算法调整,如果分析器显示整数运算导致问题,您可以并排比较不同的大小以进行比较。