有位朋友用CString类写了一个Email列表去重程序,结果发现处理78000 行的数据居然用了7分多种。于是他用Python的map(hash实现的)重写了这个程序,最后只用了300ms。CString一定会慢,因为实现中没有使用hash。于是有人用c写了一个hash函数来实现这个功能,最后花了400ms。但是代码长度是Python代码的数十倍。详情请看这里。
qyb利用glib的hashtable功能也实现了这个功能,速度超过了Python,但是代码也很简洁。qyb说,“这个例子再一次教育我们,熟练掌握优秀的第三方库是多么的重要.”
我这里没有现成的gcc和glib,不好测试qyb的程序。但是仅就那个用来测试Python程序来说,存在很多降低效率的误区,所以,我把这些问题都用效率更加的方式改写了,从而把程序的效率提高了三倍左右,现在与大家分享。阅读全文>
发表于 @ 2006年07月16日 23:40:00|评论(loading...)|编辑