yiyouzhou 发表于 2009-03-18 12:03

管道是不是可以提高运行效率

我们在脚本中有时候有几个AWK SED啥的
如果我们用管道 awk '' ufile | sed .... | awk ... > ufile1
像这种是不是指每一条过来,直接运行到完,接着第二条。第三条。。。
还是说全部记录执行完毕,再接着第二个|,第三个|。。。

关健的是,用 “|”连起来是不是可以减少执行时间?特别是记录NN大的时候,会不会很明显?谢谢各位了

leetaedong 发表于 2009-03-18 12:09

恰恰相反....

yiyouzhou 发表于 2009-03-18 12:11

回复 #2 leetaedong 的帖子

恰 恰 相反?那它具体运行是什么情况呢?

liaosnet 发表于 2009-03-18 12:11

管道越多,可能效率越低.......:em17:

leetaedong 发表于 2009-03-18 12:16

原帖由 yiyouzhou 于 2009-3-18 12:11 发表 http://bbs2.chinaunix.net/images/common/back.gif
恰 恰 相反?那它具体运行是什么情况呢?
具体运行在什么情况呢.

有些人, 对这几个工具只懂点皮毛, 要得到自己想要的结果, 就只好并着一起使了.

像很多人就喜欢这样:cat urfile |grep word 或者 more urfile |grep word,
像这样都是 很坏的习惯的.不推荐...

upperc 发表于 2009-03-18 12:26

关注一下

飞鸿无痕 发表于 2009-03-18 12:28

原帖由 yiyouzhou 于 2009-3-18 12:03 发表 http://bbs2.chinaunix.net/images/common/back.gif
我们在脚本中有时候有几个AWK SED啥的
如果我们用管道 awk '' ufile | sed .... | awk ... > ufile1
像这种是不是指每一条过来,直接运行到完,接着第二条。第三条。。。
还是说全部记录执行完毕,再接着第二 ...

先执行第一个|,然后第二个,这样|越多肯定效率越低吗???
和做事情是一个道理,比方说:你去一个地方拿三把钥匙,明明可以一下拿回来的,你非要做三次,你觉得效率会很高吗???

waker 发表于 2009-03-18 12:53

可以减少思考的时间

dream3401 发表于 2009-03-18 13:31

管道左右的进程应该是并行运行的吧
比如:
sleep 10 | sleep 10
如果两个进程这间输入与输出没有什么关系的话,应该会提高效率
如果有关系,也可以略去临时文件,所以我觉得应该会提高效率,前提是需要两个进程协同工作时,可能多cpu的情况会更好。

xuxingyu 发表于 2009-03-18 13:33

原帖由 waker 于 2009-3-18 12:53 发表 http://bbs2.chinaunix.net/images/common/back.gif
可以减少思考的时间
灵活性高一些:)
页: [1] 2 3 4 5
查看完整版本: 管道是不是可以提高运行效率