从内存访问的角度来看......是否值得尝试这样的优化?
int boolean_value = 0;
//magical code happens and boolean_value could be 0 or 1
if(boolean_value)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
代替
unsigned char boolean_value = 0;
//magical code happens and boolean_value could be 0 or 1
if(boolean_value)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
无符号字符当然只占用整数4(假设32位平台)的1个字节,但我的理解是处理器从内存中读取整数值会更快.
小智 7
它可能会或可能不会更快,速度取决于很多事情,通用答案是不可能的.例如:硬件架构,编译器,编译器选项,数据量(它是否适合L1缓存?),其他竞争CPU的东西等.
因此,正确的答案是:尝试两种方式并针对您的具体情况进行衡量.
如果测量没有表明一种方法明显快于另一种方法,那么选择更清晰的方法.