正在加载今日诗词....

More issues

[源码阅读] YYCache

YYCache 源码地址 内存淘汰机制 LRU LRU 最近最少使用 淘汰算法 * YYCache 使用 双向链表实现, 使用某个缓存时, 将缓存移到链表的头部,被移除的部分,前后两端再连接上. 再触发内存淘汰的维度限制时, 从双向链表的尾部开始移除节点, 知道满足条件. * HashMap 是来配合双向链表,用于减少时间复杂度的。它是可以快速的(O(1)的时间)定位,链表中某个值是否存在. * YYCache 中使用了 CFMutableDictionary 而不是 NSDictionary 来存储节点, 主要是为了存储 key value时的高效 * 之所以选择 双向链表而不是单向链表是为了 删除节点的时候更高效, 删除单链表中的某个结点时,一定要得到待删除结点的前驱,得到该前驱有两种方法, * 第一种方法是在定位待删除结点的同时一路保存当前结点的前驱。 * 第二种方法是在定位到待删除结点之后,重新从单链表表头开始来定位前驱。 * 尽管通常会采用方法一。但其实这两种方法的效率是一样的,指针的总的移动操作都会有2*i次. 而如果用双向链
3 min read

什么事情能够震撼你!

最近看了一篇 MacTalk 公众号文章 拼多多的速度和百亿羊毛 里面有一段话,让人感慨良多. 摘录如下: 我们常常以为自己身边的世界,就是整个世界。我们讨论问题的时候也会用「我没有看到身边甚至微信好友用过 XX,那这个产品肯定是小众的」。殊不知那只是你的一叶障目而已。世界是远方,而不是你的朋友圈。过年回家,发现老家的人们同样在微信上,而且用拼多多买得很开心。假货也好,质量一般也罢,这是他们愿意承受的方式,能用,已经比什么都强了。 很多时候确实是这样的, 这个社会变化太快了, 有时候人喜欢鸵鸟式生活, 对于世界发生的很多事情缺乏敏感度, 犹如温水煮青蛙, 很容易被世界所淘汰.
1 min read

Subscribe to JAY 站 | Share Thoughts

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe