之前我们有试过用 lua-rapidjson 替换掉 cjson 进行 encode。对于非常复杂、多层嵌套的 json 数据,lua-rapidjson 可以快接近 20%。不过对于普通的 json 数据,并没有明显变化,所以我们最终还是用回 cjson。
项目地址:https://github.com/xpol/lua-rapidjson
另一种思路是用 table concat 去手工拼字符串。之前有同事实现过这种优化,效果显著。缺点是可读性太差,每看一次头疼一次。后来吐嘈实在太多,就把这个优化回滚掉了 XD
在 2017年3月6日星期一 UTC+8下午11:37:38,wys0...@gmail.com写道:
业务需要将table序列化,
我使用了cjson的encode函数,进行了测试,发现encode太慢,有什么优化的方法或者可以替代cjson的库吗测试结果如下:
第一次, 在cjson.encode之前就返回响应,qps为5.5w;
第二次, 执行cjson.encode之后再返回响应,qps为3.9w;