废话不说,直接上图(第一个是python写的脚本,第二个和第三个是shell):
文件是一份nginx的log文件,总共583万行,然后是统计各个ip出现次数,各个脚本的执行时间如上所示。
测试环境是:centos 6.5,四核cpu,8g内存。
下面是python脚本
结果是:单核情况下,awk 自增运算最快,python脚本次之,awk和sort等命令的组合最次,猜测awk 是c/c++写的,python解释执行,awk | sort |uniq 的组合,估计哪衔接不好,效率最差。
python的多线程没测试,以后测试下,再把结果发上来。
ps:不知道python程序是我效率低还是就这样,如果有更好的写法,tell me,please。