kvaxhiklhll6402029247.png
5 R( m b2 d9 C! R; ~+ a
最近有小伙伴说没有收到当天的文章推送,这是因为微信改了推送机制,有一部分小伙伴刷不到当天的文章,一些比较实用的知识和信息,错过了就是错过了,建议大家加个星标??,就能第一时间收到推送。
& ~# D4 s4 t D
mpel2fw3r1c6402029347.png
+ ]6 q3 [' m) g7 y7 F原文:linux网络虚拟化
5 C! N0 P/ h9 T& R# z3 ?今天分享一篇内存性能优化的文章,文章用了大量精美的图深入浅出地分析了 Linux 内核 slab 性能优化的核心思想。2 V. Z& B; L5 f/ y( t
slab是 Linux 内核小对象内存分配最重要的算法,文章分析了内存分配的各种性能问题(在不同的场景下面),并给出了这些问题的优化方案,这个对我们实现高性能内存池算法,或以后遇到内存性能问题的时候,有一定的启发,值得我们学习。
& b+ H* G6 L; n. C# w/ n, fLinux 内核的 slab 来自一种很简单的思想,即事先准备好一些会频繁分配、释放的数据结构。然而标准的 slab 实现太复杂且维护开销巨大,因此便分化出了更加小巧的 slub,因此本文讨论的就是 slub,后面所有提到slab 的地方,指的都是 slub。另外又由于本文主要描述内核优化方面的内容,因此想了解 slab 细节以及代码实现的请查看源码。单CPU上单纯的slab下图给出了单 CPU 上 slab 在分配和释放对象时的情景序列: |