JS 实现LRU缓存

为什么不直接用对象这种k-v结构,因为内存空间很宝贵而且是有限的。在浏览器我们无所谓,但服务端就不一样了,例如nuxt就是用了LRU算法缓存接口数据或者渲染后的dom对象。LRU(Least Recently Used)把最近没用过的一个置换出去,意思就是如果最近用到了就放到前面,如果不够了最后一个就是最近没使用的,将其删除掉就好。使用双链表就能满足这种需求。/* * Illustration of the design: * * entry en...

HP 440 G5 安装黑苹果

去这里选择最新镜像下载使用 balenaEtcher 烧录至U盘BIOS设置启用UEFI启动禁用安全启动禁用快速启动IGPU图形内存设置为64mb(Broadwell和Skylake)如果可用,通过BIOS选项禁用串行端口如果可用,禁用“LAN / WLAN切换”禁用“局域网唤醒”和“USB唤醒”下载EFI文件并将其放到引导分区中,注意备份你之前的文件其他注意事项:安装完成后按F3显示隐藏启动项,第一次选择preboot进入无线网卡无法驱动,需要用USB无线网卡。推荐comfast的wu8...

基于布隆过滤器的依赖注入

如果你读过Shadowsocks或者Angular的代码,你会发现他里面都自己实现了一个布隆过滤器。SS用他来匹配GFW名单,Angular中用来依赖注入服务名单。NodeInjector是Ivy渲染器引入的Angular注入器,它大量使用bloom过滤器来检索令牌。Bloom过滤器的基本数据结构是位向量。Bloom Filter原理:当一个元素被加入集合时,通过K个Hash函数将这个元素映射成一个位阵列(Bit array)中的K个点,把它们置为1。检索时,我们只要看看这些点是不是都是1...