废话不说,直接上图(第一个是python写的脚本,第二个和第三个是shell):

wKiom1SGpk6Ttl_MAAVPK2KJQoE175.jpg

文件是一份nginx的log文件,总共583万行,然后是统计各个ip出现次数,各个脚本的执行时间如上所示。

测试环境是:centos 6.5,四核cpu,8g内存。

下面是python脚本

wKiom1SGpyWTNsivAADzGXo_iNs410.jpg

结果是:单核情况下,awk 自增运算最快,python脚本次之,awk和sort等命令的组合最次,猜测awk 是c/c++写的,python解释执行,awk | sort |uniq 的组合,估计哪衔接不好,效率最差。

python的多线程没测试,以后测试下,再把结果发上来。

ps:不知道python程序是我效率低还是就这样,如果有更好的写法,tell me,please。