当前位置: 技术问答>linux和unix
shell 循环 expr
来源: 互联网 发布时间:2016-12-19
本文导语: 从文件中输入一个30000*400的矩阵,计算各列的最大值、总和等性质,求和运算我用的是`expr $v1 + $v2`的方式,现在运行时发现平均每行的处理时间大约为1秒。 如果把处理的代码去掉,只保留从文件中读...
从文件中输入一个30000*400的矩阵,计算各列的最大值、总和等性质,求和运算我用的是`expr $v1 + $v2`的方式,现在运行时发现平均每行的处理时间大约为1秒。
如果把处理的代码去掉,只保留从文件中读取数值的操作,那么大概几秒就能将数据读完。我觉得可能是做加法时实际上创建了一个程序expr去执行,因而导致速度很慢。
请教下大家有没有什么好的解决方案。
如果把处理的代码去掉,只保留从文件中读取数值的操作,那么大概几秒就能将数据读完。我觉得可能是做加法时实际上创建了一个程序expr去执行,因而导致速度很慢。
请教下大家有没有什么好的解决方案。
|
expr是一个外部程序,每次调用都会创建进程,运算,销毁等,估计是慢在这个上面了. awk不错,或者用bash内部数学运算,应该不会这样了.
|
awk不错,把每行没列的保存进去,然后再进行运算
|
试试
((a=$v1+$v2))
((a=$v1+$v2))