write ahead log

ロールフォワード用

goでbrainfuckを書いた

こんな面白そうな記事があったので作ってみた.

github.com

全ての最適化を実装するのはちょっとしんどかったので(というか途中で飽き始めた)2段階目まで作った.

実行速度を見ると元記事通り, 明らかに差が出るのが面白い.

試行回数1だけど.

$ go test -bench .
BenchmarkFactorSimpleRun-4                     1        56483572100 ns/op
BenchmarkMandelbrotSimpleRun-4                 1        202497152900 ns/op
BenchmarkFactorOptimizedRun-4                  1        24686566000 ns/op
BenchmarkMandelbrotOptimizedRun-4              1        79534122700 ns/op
BenchmarkFactorOptimized2Run-4                 1        13370674300 ns/op
BenchmarkMandelbrotOptimized2Run-4             1        41272916900 ns/op
PASS
ok      _/C_/msys64/home/IMAI/dropbox/lab/gobrainfuck   418.021s

Optimize2段階目時点で5倍くらい早い.

いやー, 面白い.

参考

JITコンパイルでの冒険

Goでベンチマーク - Block Rockin’ Codes