Raspberry Pi 3 Model B買ってCommon Lisp入れた - gos-k’s blog でちょっと触っていて起動が遅い気がするのでバージョン確認出来たものについてとりあえず時間計測する。
ros use sbcl-bin time ros run -e "(quit)"
real 0m26.860s user 0m24.720s sys 0m0.480s
ros use ccl-bin time ros run -e "(quit)"
real 0m8.136s user 0m7.890s sys 0m0.170s
ros use ecl time ros run -e "(quit)"
real 0m7.412s user 0m7.050s sys 0m0.100s
sbclが極端に遅い?
pc側で何となくstraceして、何となくwcしてみる。
strace -o sbcl-strace-quit.txt ros run -L sbcl-bin -e "(quit)" strace -o ccl-strace-quit.txt ros run -L ccl-bin -e "(quit)" strace -o ecl-strace-quit.txt ros run -L ecl -e "(quit)" wc *-strace-quit.txt
1407 9939 106260 ccl-strace-quit.txt 6254 38242 632461 ecl-strace-quit.txt 7705 46700 728444 sbcl-strace-quit.txt
cclが少なめだな。 raspi側で何となくstraceして、何となくwcしてみる。
1216 7387 82418 ccl-strace-quit.txt 6867 40908 699180 ecl-strace-quit.txt 25343 151090 1769082 sbcl-strace-quit.txt
他は数割だけど、sbclの行数が3倍以上違うのなんだろ? プロセッサのアーキテクチャが違うとはいえ、同じosの同じ処理系でこんなに呼び出し回数違うもんなのか?
raspi上でpython, ruby, nodeあたりを起動してみて時間は計ってないけど、体感的にはenterキー押すのと処理系の起動にタイムラグがほぼないので1秒より遥に短いはず。
sbclの結果をざっと眺めると cacheflush
を連発してるからこれが遅いのか?
あとopenの前にパスの全部にlstat出しまくってるのもこれなんんだろ?
まあいずれにしてもCommon Lispは現状処理系選んで起動に8秒か。。。