qyb的博客

json-py、simplejson、cjson

最开始我们的 web 项目的时候,因为 json-py 最易使用——只有一个独立的文件,无需安装,放在开发目录下直接 import 即可,而且当时我醉心于 pure python 的概念,所以就这么一直用下来。

直到上周对代码做压力测试,某个流程中 json encoder 的时间居然耗掉了整整 1/3,而这个流程是最常用的功能之一,于是就寻找 json-py 的替代物。

首先想到的是 simplejson。由于 django 的内置,它可能是 python 界用得最广泛的 json 库了,而且其最新版本还包括了一个 c 的扩展以提高性能。一开始我也是对它寄予厚望,但 profiling 结果很让人郁闷:它的 decode 速度的确是比 json-py 快了不少(大概速度是3倍),但 encode 速度提升及其有限。

最后只好选择了 cjson,效率非常让人满意。
但接口友好程度就比上面两个差远了:一方面是 encode 对非 unicode 的数据类型支持不太好(比如 UTF-8 字符串里高8位字符都escape),我们只好把数据统统 str.decode('utf-8') 一下后再交给它;另一方面是它对中文 unicode 字符串的 decode 实现好像也是有问题,不过还好能想恶心办法绕过去。

结论:cjson效率最好,但兼容性一般;通常来说 simplejson 可能就足够了;如果不是 js 端会传来海量数据要 decode,json-py 也可以将就用,而且就一个文件,简单易import

附:写到本文的时候,发现一个叫 demjson 的项目四个月前刚发布新版本,而且号称自己是最快的纯python解决方案,也是一个文件就可用,看来值得一试。
而且为什么有了 _speedups.c 的 simplejson 速度和 json-py 比起来差别不大,也挺让人疑惑,啥时候有时间再重新测试看看。

Topic: 技术

links for 2008-03-15

Topic: del.icio.us

56.com 退出免费邮箱服务市场

今天在 techweb 里看到一则消息

尊敬的用户:

我们非常抱歉的通知您,由于前段时间硬件故障,导致部分用户数据丢失,经
过工程师们的不懈努力,目前已经恢复了大部分的数据,但仍有小部分数据无
法恢复。所有恢复的邮件我们都会放入您的收件箱里,请及时将重要的邮件下
载保存或者转发到其他第三方邮箱;将我们的邮箱设置为安全邮箱的用户也请
及时更改您的安全邮箱,建议使用网易的163邮箱或者126邮箱。我们的邮箱将
在2008年6月1日起正式停用,请务必在这之前做好邮件备份和邮箱转移的工作;
对于期间给您带来的不便,我们表示深深的歉意!

56.COM客户服务部

1. 兔死狐悲.. 免费邮箱这个职业不好做啊
2. 不好看 56 的视频业务。既然它不能体面的结束免费邮箱业务,说明它的团队还是有缺陷的。
3. 赶紧查了查 56 这个公司是在哪里——不出所料,果然是在广州——可惜无法乘机去挖人了,可能会便宜 QQ,呵呵

Topic: 商业

今天成功做出一份锅塌里脊!

上周去 zzh 家做客,他媳妇做了一盘锅塌里脊,引得一桌天津人以及我这样的假天津人食指大动。说起来好像大家到北京后都自个下厨尝试做锅塌里脊来着,但无一例外结果会变成鸡蛋炒肉。现有厨师在眼前,连忙请教了秘诀回去尝试。

今早去超市特意买了一份里脊肉,中午就动手......突然只听得 qyb 站在灶台前发出一阵狂笑,终于成功了!!

另外4个菜都是老婆的功劳:

午饭后去了美术馆看敦煌艺术展,给达达拍了不少照片,这里也放一张

Topic: dada 生活

向公众报告服务器、网络状态?

几个月前看到一家 Email Hosting 服务商 FastMail.FM 专门设了一个 http://status.fastmail.fm/ 来报告网站的维护和故障情况。当时觉得挺有意思的,还订了它的 RSS 输出。

今天看到 SaaS 的代表 salesforce 也有这么一个网站:http://trust.salesforce.com/. 难道向公众(包括客户和潜在客户)报告服务器运行状态会是一项很重要的公关和宣传手段?就好比现在的企业 blog 一样。

附:知道 FastMail.FM 是因为他们付钱给 nginx 开发出了 pop3/imap4 的反向代理,还有 FastMail.FM 的网站好像需要翻墙才能去看.

Topic: 商业

这也会过去

有两件事情让我相当的郁闷——或者用网络流行用语——相当的纠结

睡一觉醒来后就好多了

现在回头再想,对于我的主要目标来说,这两件事情都是小事。可以放在一边

但使得思考的是引发这两件事情的起因,希望以后少犯类似的错误,用科学的手段去做决策。

最后要说的是,我们一家三口已经成功在北京生存了三周了,现在没有父母帮忙,也没有保姆小时工...对于我们这样一个互联网一个电信行业的家长来说,应该够少见了吧..

Topic: 商业 生活

一周大事记

最重要的当然就是 IE8 beta1 的发布
本来不想尝鲜的,但发布第二天就有人在论坛上反馈 IE8 无法使用搜狐通行证。无奈装一个看看,最后发现是 IE8 beta1 的 bug——table Element 里面的 rows 无法访问,然后去报 bug 的地方看了看,有另外几例相关的bug报告。

不过 IE8 缺省带的 Development Tools 还不错,调试 CSS/JS 功能已经很齐全了。

和 IE8 beta1 呼应的是,firefox3 升级到了 beta5pre,beta4下周应该就发布了吧

第二重要的事情是:AOL 开放了它的 IM 协议

第三:Google 开放它的 Contact API

第四:iphone SDK

Topic: 商业 技术
订阅 RSS - qyb的博客