Mac の wc と比較する
- wc: Mac OS X El Capitan には入っているもの
- go-wc: https://github.com/takatoshiono/go-wc/blob/cea7defc2cfe0d148f7df23fe6c6e104c68eedc2/go-wc.go
#!/bin/sh
COMMAND=$1
FILE=$2
MAX=$3
for i in `seq 1 $MAX`; do
$COMMAND $FILE >/dev/null
done
https://github.com/takatoshiono/dotfiles/blob/master/vimrc
だいたい倍遅い
➜ bench-go-wc time ./bench.sh wc vimrc 1000
./bench.sh wc vimrc 1000 0.78s user 1.13s system 75% cpu 2.528 total
➜ bench-go-wc time ./bench.sh wc vimrc 1000
./bench.sh wc vimrc 1000 0.79s user 1.14s system 76% cpu 2.515 total
➜ bench-go-wc time ./bench.sh wc vimrc 1000
./bench.sh wc vimrc 1000 0.79s user 1.16s system 76% cpu 2.535 total
➜ bench-go-wc time ./bench.sh go-wc vimrc 1000
./bench.sh go-wc vimrc 1000 0.77s user 2.53s system 65% cpu 5.051 total
➜ bench-go-wc time ./bench.sh go-wc vimrc 1000
./bench.sh go-wc vimrc 1000 0.77s user 2.52s system 65% cpu 5.049 total
➜ bench-go-wc time ./bench.sh go-wc vimrc 1000
./bench.sh go-wc vimrc 1000 0.78s user 2.53s system 65% cpu 5.063 total
5倍くらい遅いし、実行中にメモリを900Mくらい使っていた。
➜ bench-go-wc time ./bench.sh wc dump.sql 10
./bench.sh wc dump.sql 10 17.29s user 0.67s system 99% cpu 18.040 total
➜ bench-go-wc time ./bench.sh go-wc dump.sql 10
./bench.sh go-wc dump.sql 10 91.87s user 4.01s system 104% cpu 1:31.42 total
メモリ消費量を少なくするために1バイトずつ読んでみたらもっと遅くなった。
特に大きいファイルだと遅い。遅すぎて途中で実行中断した。
https://github.com/takatoshiono/go-wc/blob/cabe08af93dbf2363d869bf4c5b9cd2f8acb3bfa/go-wc.go