Mom*_*gil 9 c++ embedded performance qt integer
我在嵌入式Linux的C++/Qt项目中工作,我们经常"决定"反对我们处理器的局限性,特别是在更新用户界面中的图形时.由于这些限制(特别是我们前一段时间甚至更糟糕的情况),我会尽可能地优化代码,如果优化成本最低的话.我正在做的一个优化是始终对我正在处理的情况使用正确的整数值:qint8,qint16和qint32取决于我需要的值有多大.
但是前段时间我在某个地方读到,在可能的情况下,我不应该尝试使用最小的整数,我应该总是更喜欢使用与处理器容量相关的整数值,也就是说,如果我的处理器是32位的,那么即使不需要这么大的整数,我也应该总是使用qint32.在第一时刻,我无法理解为什么,但这个问题的答案表明,这是因为当处理器必须使用其"默认大小整数"时,处理器的性能会更高.
好吧,我不相信.首先没有提供实际的参考来证实这样的论点:我只是无法理解为什么从32位存储器空间写入和读取比使用32位整数更慢(并且给出的解释不是很容易理解,顺便说一句.其次,当我需要将数据从一侧传输到另一侧时,例如当使用Qt的信号和插槽机制时,我的应用程序上有一些时刻.由于我将数据从一个点传输到另一个点,不应该是较小的数据总能比较大的数据有所改进吗?我的意思是发送两个字符(不是通过引用)的信号不应该更快地完成工作然后发送两个32位整数?
事实上,虽然"处理器解释"建议使用处理器的特性,但其他情况则表明相反.例如,在处理数据库时,这个和这个线程都表明在使用较小版本的整数时有一个优势(即使只是在某些情况下).
所以,毕竟,当上下文允许或不允许时,我是否应该使用小类型的int?或者,当一种方法或另一种方法更有可能给出更好或更差的结果时,是否有一个案例列表?(例如,我在使用数据库时应使用int8和int16,但在所有其他情况下我的处理器的默认类型)
并且作为最后一个问题:Qt通常具有基于int的函数实现.在这种情况下,施法操作是否会通过使用次要整数来消除任何可能的改进?
Rob*_*son -2
有关积分促销的信息:
http://en.cppreference.com/w/cpp/language/implicit_cast
小整型类型(例如 char)的纯右值可以转换为较大整型类型(例如 int)的纯右值。特别是,算术运算符不接受小于 int 的类型作为参数,并且在左值到右值转换后会自动应用整数提升(如果适用)。此转换始终保留该值。
| 归档时间: |
|
| 查看次数: |
2761 次 |
| 最近记录: |