首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

小小的 likely 背后却大有玄机!

在内核中很多地方都充斥着 likely、unlikely 这一对儿函数的使用。随便揪两处,比如在 TCP 连接建立的过程中的这两个函数。...今天我就来和大家聊聊 likely、unlikely 是如何帮助性能提升的。 1. likely 和 unlikely 咱们先来挖挖这对儿函数的底层实现。...//file: include/linux/compiler.h #define likely(x) __builtin_expect(!!...小结 总结一下,今天分享的 likely 和 unlikely 其实是属于是辅助 CPU 分支预测的性能优化方法。这就是 likely 和 unlikely 背后的这点小秘密。...Linux 作为一个基础程序,在性能上真的是考虑到了极致。内核的作者们内功都是非常的深厚,都深谙计算机的底层工作原理。为了极致的性能追求精心打磨每一个细节,非常值得我们学习和借鉴。

77710
您找到你想要的搜索结果了吗?
是的
没有找到

详解Linux进程调度策略

本文通过Linux进程调度的5类方式详细分析了策略以及实现过程中的详细讲解。...1、Linux 下进程分为5种类别,分别是停止类、截止类、实时类、公平类、空闲类, 每种类别都有一个运行队列,每次调度时,就是先按照类别优先级排序,再按照每个类别内的最高优先级任务调度运行。 ?...文件:core.c (linux-4.6\kernel\sched) ? 解读:先看下面的for循环,可以看到实现思路是,遍历每种类别,选择下一个可运行的任务。...由于大部分任务都属于公平队列,所以,绝大部分情况下,都在公平队列中进行选择,所以,内核开发者在上面的代码中加了likely()提高性能。 ? ? ? ? ? ?...schedule() — >__schedule ()— > pick_next_task() 文件:core.c (linux-4.6\kernel\sched) ? ?   。。。。。。

2.1K21
领券