chibicc compiler を6800向けに改造する (7) dhystone
コンパイラが一通り動くようになったのでベンチマークしてみた。古典的な dhrystone。 z88dkで動くバージョンがあったので、それで試してみる。
案の定、いくつかbugが出たが、なんとか動くようになった。
chibicc 6800 で dhtystone
とりあえず実行。特に表示はなく終了する。所用サイクルは、285,140,069. 1MHz 6800なら、285秒。ベーシックマスターなら380秒ぐらいか。
バイナリサイズは 11,826バイト。ベーシックマスター実機でも動きそうなサイズである。
1MHz換算なら 0.039 DMIPS、2MHzでも .0798 DMIPS。遅いなあ。
./drytest FuzixLD 0.2.1 emu6800 -d 6800 dhry.bin dhry.map CPU cycles = 3207 CPU cycles = 285143276 0
Z88DKと比較
記事先頭に書いたリンク先には、ベンチマークの結果がいくつか書かれている。
この中では SDCC Linux版が一番速いようだ。他のコンパイラも 0.1-0.2 DMIPSぐらいでていて高速である。
4. SDCC 4.2.0 Linux 6825 bytes less page zero cycle count = 225522684 time @ 4MHz = 225522684 / 4x10^6 = 56.3807 seconds dhrystones/s = 20000 / 56.3807 = 354.7315 DMIPS = 354.7315 / 1757 = 0.20189
HITECH C は、FM-8のCP/M (Z80カードで動かす)で使ったことがあるが、コンパイルが非常に遅いんで BDS-C ばかり使っていた記憶がある。
6. HITECH C CPM V309-15 8988 bytes exact cycle count = 356235065 time @ 4MHz = 356235065 / 4*10^6 = 89.0588 sec dhrystones/s = 20000 / 89.0588 = 224.5708 DMIPS = 224.5708 / 1757 = 0.1278
dhrystoneは特定の関数が高速化できれば速くなる、という話を大昔に聞いたことがあるが、どれだっけなあ。
ディスカッション
コメント一覧
まだ、コメントがありません