如何量測程式輸出的速率

作者:   發佈於:   #howto

如果想要量測程式輸出至 STDOUT 的速率,可用 pv 這程式。再配合 time 來同時量測其總處理時間。

以處理這個檔案大小約 73632KB 的 dict-revised.json 為例。

# ls -sk dict-revised.json 
 73632 dict-revised.json

先量測 catpv 本身的處理速度及速率:

# time (cat dict-revised.json | pv -a > /dev/null)
[2.39GiB/s]
( cat dict-revised.json | pv -a > /dev/null; )  0.01s user 0.05s system 169% cpu 0.036 total

可看到總處理時間為 0.036 秒。而 2.39GiB/s 這速率為平均速率。

接著量測 json_reformat -m 這個將 json text 中空白全去除掉的處理速度及速率:

# time (cat dict-revised.json | json_reformat -m | pv -a > /dev/null)
[95.9MiB/s]
( cat dict-revised.json | json_reformat -m | pv -a > /dev/null; )  0.58s user 0.09s system 113% cpu 0.595 total

可看到平均速率為 95.9MiB/s。總執行時間為 0.595 秒。

再取個處理速度較慢的 json-print2 來比:

# time (cat dict-revised.json | json-print2 -m | pv -a > /dev/null)
[2.46MiB/s]
( cat dict-revised.json | json-print2 -m | pv -a > /dev/null; )  22.68s user 0.31s system 100% cpu 22.975 total

可看到平均速度為 2.46MiB/s。總執行時間為 22.975 秒。