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

Recent posts

[源码阅读] YYCache

[源码阅读] YYCache

YYCache 源码地址 内存淘汰机制 LRU LRU 最近最少使用 淘汰算法 YYCache 使用 双向链表实现, 使用某个缓存时, 将缓存移到链表的头部,被移除的部分,前后两端再连接上. 再触发内存淘汰的维度限制时, 从双向链表的尾部开始移除节点, 知道满足条件. HashMap 是来配合双向链表,用于减少时间复杂度的。它是可以快速的(O(1)的时间)定位,链表中某个值是否存在. YYCache 中使用了 CFMutableDictionary 而不是 NSDictionary 来存储节点, 主要是为了存储

什么事情能够震撼你!

什么事情能够震撼你!

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

位运算之2的幂数

位运算之2的幂数

高效代码中底层框架经常会使用位运算来提高算法的计算效率. 不过一般应用开发中并不太推荐使用复杂的位运算逻辑, 其一 过于烧脑的位运算可读性,维护性差些, 其二一般的编译器会对于相关的表达式进行优化,直接编译出位运算相关的代码. 不过, 学习位运算对于开发思维还是很有好处的, 实际生产中底层框架使用云运算也很常见.

GCD 探究

GCD 探究

多线程业务处理是一种提高效率,优化体验的通用做法, iOS 中常常使用的其中之一就是 GCD , 其中一个比较有意思的 dispatch_barrier 最容易让人迷惑...