Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2517999
  • 博文数量: 540
  • 博客积分: 11289
  • 博客等级: 上将
  • 技术积分: 6160
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-11 20:27
个人简介

潜龙勿用,见龙在田

文章分类

全部博文(540)

文章存档

2018年(2)

2013年(5)

2012年(24)

2011年(104)

2010年(60)

2009年(217)

2008年(128)

分类:

2009-07-16 11:30:13

目前本人所知道的统计记录行数的有下面几个命令:
1. wc -l filename
2. awk 'END{print NR}' filename
3. grep -c '.*' filename

下面对这几个命令做个统计效率的比较,目标文件为apache log:
[root@apache tmp]# time wc -l
5566746

real    0m2.224s
user    0m1.181s
sys     0m0.987s

[root@apache tmp]# time awk 'END{print NR}'
5566746

real    0m5.210s
user    0m3.827s
sys     0m1.334s

[root@apache tmp]# time grep -c '.*'
5566746

real    2m29.039s
user    2m27.477s
sys     0m0.994s

效率高低很明显了。wc -l的效率是最高的。grep -c 最慢
不过在测试时需要注意一下,最好先每个命令都先跑一次,第一次统计的那个命令时间会相对长点。跑一次后有了缓存,每个命令再跑一次,记录的时间才是可供比较的,总之不要记录第一次的,因为这里主要是对比三个命令的效率

[root@apache logs]# free
             total       used       free     shared    buffers     cached
Mem:       8310260    5118420    3191840          0      77476    4524532
-/+ buffers/cache:     516412    7793848
Swap:      2096440      15128    2081312

Intel(R) Xeon(R) CPU           E5310  @ 1.60GHz 4核

hda: WDC WD740ADFD-00NLR5, ATA DISK drive
阅读(1523) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~