igbinary vs serialize vs json_encode2010-04-18 @ 23:01:58 · 作者 Volcano · 归类于 php你可能会感兴趣的内容关于“facebook的memcached实战”小记试着开源LiteCloud项目memcache连接慢又一例启用memcached压缩注意事项Memcache的备忘最近看到memcached扩展支持额外的序列化方式 — igbinary,这是一个未收录到pecl的php扩展,它提供的两个主要方法:igbinary_serializeigbinary_unserialize据称可以用它来代替php自带的序列化函数serialize,性能更好,而且占用的字节数也更少。下面我就 igbinary ,serialize ,json_encode三者的性能做了一个简单的测试。测试以一个包含1000000个元素的数组做为原始数据,分别以json, serialize, igbinary进行序列化和反向操作。 测试结果JSON Encode: 0.084825992584229JSON Decode: 0.34976410865784Serialize: 0.38241410255432Serialize: 7.7904229164124Igbinary Serialize: 0.046916007995605Igbinary Serialize: 0.23396801948547从测试结果来看,速度方面优先级排列为 igbinary > json > serialize。同时我们也可以看到,php原生的serialize在对大对象进行反向操作时,速度真是掉队一大截了。占用字节数对比json: 5000001serialize: 15888902igbinary: 7868681在没有中文字符的情况下,json胜出,igbinary次之,serialize又被甩了几条街。