免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: spiritX
打印 上一主题 下一主题

不用echo, grep 如何查找字符串变量 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-06-09 12:36 |只看该作者
原帖由 我是DBA 于 2009-6-9 11:36 发表
为什么说echo的效率低?


因为我做过测试, 真的很低哦

论坛徽章:
0
12 [报告]
发表于 2009-06-09 12:40 |只看该作者
原帖由 lululau 于 2009-6-9 12:06 发表
grep "xxx"  


try it.

论坛徽章:
0
13 [报告]
发表于 2009-06-09 12:42 |只看该作者
echo是内建的吧,慢是因为有管道吧

论坛徽章:
0
14 [报告]
发表于 2009-06-09 12:45 |只看该作者

  1. [root@0609-0090 ~]# time for((i = 0; i < 100; i++)); do echo -n; echo -n; done

  2. real    0m0.007s
  3. user    0m0.016s
  4. sys     0m0.000s
  5. [root@0609-0090 ~]# time for((i = 0; i < 100; i++)); do echo -n | echo -n; done

  6. real    0m5.796s
  7. user    0m3.715s
  8. sys     0m4.304s

复制代码


事实证明echo本身并没有问题

论坛徽章:
0
15 [报告]
发表于 2009-06-09 12:58 |只看该作者
原帖由 lululau 于 2009-6-9 12:45 发表

[root@0609-0090 ~]# time for((i = 0; i < 100; i++)); do echo -n; echo -n; done

real    0m0.007s
user    0m0.016s
sys     0m0.000s
[root@0609-0090 ~]# time for((i = 0; i < 100; i++)); do e ...



echo 2M左右的数据大约需要1~2秒

论坛徽章:
0
16 [报告]
发表于 2009-06-09 12:59 |只看该作者

我的问题类似于查找内存变量.

我的问题类似于查找内存变量.

论坛徽章:
0
17 [报告]
发表于 2009-06-09 15:26 |只看该作者
原帖由 lululau 于 2009-6-9 12:06 发表
grep "xxx"  


效率还更低了, 我用seq测试的.

$buf为2048000字节的数据

1.
time tmp=`echo "$buf" | sed -n '1d;1q'`
real 0m1.751s
user 0m1.619s
sys 0m0.085s

2.
time tmp=`sed '1d;1q' <<<"$buf"`
real 0m2.315s
user 0m2.049s
sys 0m0.226s

没办法了么 ?

论坛徽章:
0
18 [报告]
发表于 2009-06-09 15:44 |只看该作者
是否是字符串存储导致的呢?


  1. [root]# time seq 1 10000 | tr '\n' ' ' | grep 123 > /dev/null

  2. real    0m0.013s
  3. user    0m0.013s
  4. sys     0m0.004s

  5. [root]# str=$(seq 1 10000); time echo $str | grep 123 > /dev/null

  6. real    0m0.543s
  7. user    0m0.543s
  8. sys     0m0.001s
复制代码


如果这个变量可以不保存,在获取它的值的位置直接grep一下看看效率如何?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP