shell编程优化.ppt
Shell编程优化编程优化Samhuang2010/01/22优化方法优化方法1.优化算法结构,化繁为简优化算法结构,化繁为简2.掌握系统命令,提升效率掌握系统命令,提升效率3.合并处理逻辑,减少进程数量合并处理逻辑,减少进程数量4.缓存中间结果,降低系统开销缓存中间结果,降低系统开销1.优化算法结构,化繁为简优化算法结构,化繁为简算法对程序的重要性不言而喻,合理的算法能有效算法对程序的重要性不言而喻,合理的算法能有效的提高程序的性能和效率的提高程序的性能和效率例例1)生成大小为生成大小为n KM|G的文件(其中的文件(其中n为自然数)为自然数)算法算法1 算法算法2 2.熟练掌握系统命令,提升效率熟练掌握系统命令,提升效率Shell编程有其独特的特点,很多时候能够利用系编程有其独特的特点,很多时候能够利用系统的命令简化处理逻辑,提高性能统的命令简化处理逻辑,提高性能 2.熟练掌握系统命令,提升效率熟练掌握系统命令,提升效率例例2)将数据文件中的数据导入将数据文件中的数据导入mysql数据库的表中数据库的表中方法方法1,利用数据库的批量数据导入命令,利用数据库的批量数据导入命令 load/usr/local/mysql/bin/mysql-u userName-p password-hlocalhost-D DBName-e load data infile fileName into table tableName方法方法2,写一个循环,每次往数据库表中插入一条数据,写一个循环,每次往数据库表中插入一条数据 while read linedo /usr/local/mysql/bin/mysql-u userName-p password-hlocalhost-D DBName-e INSERT INTO tableName values($line);done$fileName性能对比分析:性能对比分析:假定数据文件有假定数据文件有1万行,利用方法万行,利用方法1,可以在,可以在1-2秒钟完成入库任务;而利用方秒钟完成入库任务;而利用方法法2,需要的时间要大于,需要的时间要大于10分钟。数据量越大,性能差异越明显。分钟。数据量越大,性能差异越明显。2.熟练掌握系统命令,提升效率熟练掌握系统命令,提升效率例例3)从文件中找出匹配的行)从文件中找出匹配的行方法方法1,利用,利用grep找出匹配的行找出匹配的行grep pattern$fileName方法方法2,写一个循环,搜索到匹配的行,写一个循环,搜索到匹配的行while read linedo if$line=$pattern then echo$line break;fidone$netFile cat$netFile|awk split($4,port,:);split($NF,proc,/);if(proc1=-)proc2=proc1;print proc2,port2,port1,$1$retFile rm-f$netFile/dev/null 2&1#resFile的结果为:56000 172.16.56.134 tcp32768 0.0.0.0 udp.Q&ATHANKS!