0%

代码洁癖

最近修改了同事写的一块算法处理代码,有一个地方看得很不舒服,如下

1
2
3
4
if (likely(offset)) {
offset = 0;
}

本意是想着如果offset不为0的话,则赋值为0。 代码逻辑没有问题, 但是这个判断实在是多此一举。 既然用了likely,那么代码就是表示大部分情况offset是非0的,让编译器在编译的时候,把赋值指令紧跟在判断语句之后, 条件不成立时才作跳转。

1
offset = 0;

既然大部分情况offset不为0, 那就是这个逻辑大部分情况要执行2条语句,干脆直接赋值算了,这样所有情况都执行一条语句。

一条语句明显执行的更快。// 大概差1-2s的样子 500w次循环

顺带把原先代码中的tab全部替换为空格, 代码进行对齐,顿时清爽了许多。

这就是代码洁癖吧,我觉得挺好。

行动,才不会被动!

欢迎关注个人公众号 微信 -> 搜索 -> fishmwei,沟通交流。