这两天看 memcached 源码,发现真的好复杂啊

2018-09-15 23:39:24 +08:00
 d18

LRU,SLAB 的逻辑真的太复杂了,完全看不懂,关键还没有文档可查。

3186 次点击
所在节点    程序员
6 条回复
agagega
2018-09-16 00:54:26 +08:00
看看相关的 Linux 内核介绍,SLAB 和那个有关系
simonliu2018
2018-09-17 10:23:25 +08:00
我也没看过 memcached 源码。

不过我想这种问题和『这个 BUG 好诡异,一点思路也没有』属于同类问题,缺乏相关的背景知识。

刚工作的时候遇到奇怪的 BUG 就束手无策,后来恶补了操作系统,数据库啥的基础知识,慢慢就得心应手了。
i4oolish
2018-09-17 10:43:40 +08:00
memcache 应该属于后端组件里面最简单的了吧
d18
2018-09-17 12:32:42 +08:00
@simonliu2018 并不是。主要是它的 LRU 不是简单的 LRU,另有一套自己的逻辑,但是又没有文档可查,只能自己看代码去琢磨。
d18
2018-09-17 12:34:01 +08:00
@i4oolish 和简单与否无关。就像给你一段全新的算法代码,但不告诉你这个算法大致的逻辑,那你就只能自己去猜这段代码到底是干嘛的,很痛苦。
i4oolish
2018-09-17 14:02:54 +08:00
网上有 memcached LRU 和 SLAB 的算法讲解,我之前看源码的时候搜过,看看别人画的图,然后自己再结合代码看应该会好理解一些。
个人感觉看别人的图很直观。另外,memcached 好像可以把 LRU 和 SLAB 的运行状态打印出来,你可以对照着学习。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/489729

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX