Yac 3.0 发布,重点优化缓存读写性能:新增 inline 机制,短 key 的 value 直接存入 slot,省去分配和拷贝,double 也可内联;读路径改用 versioned snapshot,降低读多写少场景的协调开销;引入基于 epoch 的 CRC,仅在无法确认数据稳定时校验;自研序列化器支持 array 和 stdClass,其余回退 PHP 原生;新增 Yac::has(),不更新 atime 和 hits。测试显示常见负载吞吐较 2.4.2 提升 42.3%,最高 95.4%。
Yac 2.4.0发布,主要改进包括:内嵌小值到指针槽位,避免占用values内存,提升读取性能64%;用LZ4替换FastLZ压缩,解压更快;get()支持$default参数区分未命中与假值;dump()支持分页及元信息。实际测试中内存占用从23.5M降至12.4M,吞吐显著提升,适合WordPress缓存场景。
作者用自研PHP扩展Yac替换WordPress的Memcached对象缓存,实测吞吐提升约19%,延迟降低15%。Yac将缓存存于FPM共享内存,免去网络往返,优势恒定。文章提供安装配置方法,并指出单机场景最适合,多机集群仍需Memcached/Redis。
Yac (Yet Another cache)也是之前我在微博的时候开发的一个为PHP使用的,Lock-free, Shared Memory, User Data Cache,用来替代当时微博在PHP机器上装的本地Memcache, 因为当时的需求特点,最初做了完全无锁的设计,但是这样有一个隐患就是用户有可能获得“错误”的数据,虽然之前的测试概率非常非常低。...
好久没有更新blog了, 这一年来的工作确实很忙..... anyway, 今天终于有新东西可以和大家分享. 这个idea来自一个很简单的想法, 以及目前所遇到的一个机会. 首先我们来谈谈这个机会. 在以前, 很多人都会选择使用APC, APC除了提供Opcode Cache以外, 还会提供一套User Data...
完成下面两步后,将自动完成登录并继续当前操作。