linux-likely学习
背景
在日常的工作和学习中,经常发现likely和unlikely的使用,在通知链节点注册时,有如下函数
1 | static int notifier_chain_register(struct notifier_block **nl, |
这里通过遍历节点和插入节点地址对比,防止程序运行时重复插入通知链节点。当然,重复插入这种情况下是非常少见的,因此编译器针对此进行了性能优化。
在日常的工作和学习中,经常发现likely和unlikely的使用,在通知链节点注册时,有如下函数
1 | static int notifier_chain_register(struct notifier_block **nl, |
这里通过遍历节点和插入节点地址对比,防止程序运行时重复插入通知链节点。当然,重复插入这种情况下是非常少见的,因此编译器针对此进行了性能优化。