我有一个项目,需要操作某些输出文件。
可以通过使用grep、sed和管道符号|的组合来完成此操作。
另外,也可以编写C++程序来完成同样的操作。
是否有结论表明哪种方法更快,因为grep和sed已经相当优化了?
我有一个项目,需要操作某些输出文件。
可以通过使用grep、sed和管道符号|的组合来完成此操作。
另外,也可以编写C++程序来完成同样的操作。
是否有结论表明哪种方法更快,因为grep和sed已经相当优化了?
从技术角度来看,一个写得好的自包含C++程序将比使用两个或多个通过管道相互连接的shell命令更快,因为没有进程间通信的开销,并且它们可以根据你的实际需求进行定制和优化。
但是,除非你正在编写一个将会连续运行数年的程序,否则你永远不会注意到足够的收益值得这样做。
而预先优化的标准规则同样适用...
如果我是你,就使用已经存在的工具,因为它们可能已经存在很长时间并经过测试和尝试。自己编写一个新程序来完成相同的事情似乎是一种“重复造轮子”的行为,容易出错。
如果您是一位非常优秀的C/C++程序员,并且花费了大量时间,很可能会编写出比您所考虑的管道更快的程序。但是,除非在这种情况下性能如此关键,以至于您必须以这种方式完成,否则应该使用管道。