この広告は、90日以上更新していないブログに表示しています。
この前必要があってお粗末なスクリプトを書いた時、速度に大きな差があったので気になった。
なんとなく変数に持ったほうが、試行回数が増えるほど早くなるのかとおもってた
KagoyaVPS 最小構成CentOS6.5日毎課金なので特にこだわりなければ安くあがっておすすめです。ちょっと触ってすぐ削除するような使い方
[root@v8794 work]# cat /proc/cpuinfo |grep processorprocessor :0processor :1processor :2[root@v8794 work]# cat /etc/redhat-releaseCentOS release 6.5(Final)[root@v8794 work]# free total used free shared buffers cachedMem:2097152445288165186400424992-/+ buffers/cache:202962076856Swap:419430421420417288
# ファイルに対してgrep[root@v8794 work]# cat file.sh#! /bin/shcat<< EOF | while read txt`cat /dev/urandom| tr -dc'a-zA-Z0-9'| fold -w16| head -n$2|sort| uniq`EOFdogrep${txt}$1if [$?-eq0];thenecho"true"elseecho"false"fidone# 変数に格納したあとgrep[root@v8794 work]# cat val.sh#! /bin/shtesttxt=`cat$1`cat<< EOF | while read txt`cat /dev/urandom| tr -dc'a-zA-Z0-9'| fold -w16| head -n$2|sort| uniq`EOFdoecho$testtxt|grep${txt}if [$?-eq0];thenecho"true"elseecho"false"fidone
ファイル観たほうが速い
[root@v8794 work]#time ./file.sh test.txt10falsefalsefalsefalsefalsefalsefalsefalsefalsefalsereal 0m0.179suser 0m0.087ssys 0m0.085s[root@v8794 work]#time ./val.sh test.txt10falsefalsefalsefalsefalsefalsefalsefalsefalsefalsereal 0m51.921suser 0m45.767ssys 0m7.232s
ちなみに、小さいファイルにしたら逆転するのかと思ったら、そんなことなかった
[root@v8794 work]# ll test2.txt-rw-r--r--1 root root170001月2320:482016 test2.txt[root@v8794 work]#time ./file.sh test2.txt10falsefalsefalsefalsefalsefalsefalsefalsefalsefalsereal 0m0.019suser 0m0.002ssys 0m0.007s[root@v8794 work]#time ./val.sh test2.txt10falsefalsefalsefalsefalsefalsefalsefalsefalsefalsereal 0m0.049suser 0m0.032ssys 0m0.008s[root@v8794 work]
あれ?これって当たり前の話???もしかして恥ずかしい疑問なのかもしれない
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。