2013/05/02(木) [n年前の日記]
#1 [prog] DXRubyその他の動作速度を確認した結果をメモ
以下の処理をするスクリプト。
スクリーンショットはこんな感じ。
一応スクリプトも、zipでまとめて置いておくです。exe化してあるから、Ruby や Python が入ってなくても動くです。
_fullscrtest_20130502.zip (21MB)
それを3台のPCで動作確認。
以下のような結果に。
感想というか、思ったことをメモ。
- ウインドウサイズ 640x480
- BG x 2枚を描画
- 64x64ドット x 512枚を描画
- oggをループ再生
- DxRuby 1.4.0 + Ayame.dll
- HSP 3.32 + hgimg3
- StarRuby 0.3.3
- Ruby/SDL 2.1.1
- PyGame 1.9.2pre
- Ruby 1.9.3 p392 mingw版
- Python 2.6.6。
スクリーンショットはこんな感じ。
一応スクリプトも、zipでまとめて置いておくです。exe化してあるから、Ruby や Python が入ってなくても動くです。
_fullscrtest_20130502.zip (21MB)
それを3台のPCで動作確認。
種類 | CPU | コア数 | クロック | Video | Memory | OS | 備考 |
---|---|---|---|---|---|---|---|
メインPC | Core i5 2500 | 4 | 3.3GHz | GeForce 9800GTGE | 8GB | Windows7 x64 | 自作PC |
録画用PC | Athlon II X4 605e | 4 | 2.3GHz | Radeon HD 4200 (AMD785Gオンボード) | 8GB | Windows7 x64 | 自作PC |
ネットブック機 | Atom N270 | 1 | 1.6GHz | Intel GMA950 (オンボード) | 2GB | Windows XP Home SP3 | Lenovo IdeaPad S10-2 |
以下のような結果に。
ライブラリ | 描画内容 | 表示種類 | ネットブック機 | 録画用PC | メインPC |
---|---|---|---|---|---|
HSP | 全て | ウインドウ | 14 FPS | 60 FPS | 60 FPS |
フルスクリーン | 54 FPS | 60 FPS | 60 FPS | ||
StarRuby | 全て | ウインドウ | 19 FPS | 60 FPS | 60 FPS |
フルスクリーン | 19 FPS | 60 FPS | 60 FPS | ||
BGのみ | ウインドウ | 41 FPS | 60 FPS | 60 FPS | |
フルスクリーン | 41 FPS | 60 FPS | 60 FPS | ||
DXRuby | 全て | ウインドウ | 11 FPS | 60 FPS | 60 FPS |
フルスクリーン | 13 FPS | 60 FPS | 60 FPS | ||
BGのみ | ウインドウ | 20 FPS | 60 FPS | 60 FPS | |
フルスクリーン | 30 FPS | 60 FPS | 60 FPS | ||
PyGame | 全て | ウインドウ | 11 FPS | 20 FPS | 60 FPS |
フルスクリーン | 11 FPS | 20 FPS | 60 FPS | ||
BGのみ | ウインドウ | 25 FPS | 60 FPS | 60 FPS | |
フルスクリーン | 25 FPS | 60 FPS | 60 FPS | ||
Ruby/SDL | 全て | ウインドウ | 1 FPS | 2 FPS | 60 FPS |
フルスクリーン | 1 FPS | 2 FPS | 60 FPS | ||
BGのみ | ウインドウ | 2 FPS | 60 FPS | 60 FPS | |
フルスクリーン | 2 FPS | 60 FPS | 60 FPS |
ライブラリ | フルスクリーン表示 | oggループ再生 | 言語仕様 | 処理速度 |
---|---|---|---|---|
HSP | ○ | × *2 | △ | 速い *4 |
StarRuby | ○ | × *3 | ○ | 速い |
DXRuby | × *1 | ○ | ○ | 速い |
PyGame | ○ | ○ | ○ | 遅い |
Ruby/SDL | ○ | ○ | ○ | 非常に遅い |
- *1 環境によっては激しく点滅・ちらつく。
- *2 ノイズが入る。
- *3 音が途切れる。
- *4 ネットブック上ですら、フルスクリーン表示ならそこそこスルスルと動く。
感想というか、思ったことをメモ。
- ネットブック機上ではどれも話にならないので、さすがにサポート外にしたほうがヨサゲ。ただし、HSPのフルスクリーン表示時だけは、かなりスルスル動いてしまった。HSP + hgimg3 だけ、何か特殊なことをしているのかもしれない。
- PyGame は遅い。Ruby/SDLはもっと遅い。しかし、BGのみを描画 ―― 大きな画像を数枚だけ描画するなら速度が異様に上がるので、細かい画像を大量に描画する処理は向いてないだけ、かもしれない。
- 上の実験結果には書いてないが、StarRuby も試しに回転描画等をすると、PyGame や Ruby/SDL 並みに遅くなった。おそらく、PyGame と Ruby/SDL は、自由度は高いが速度が遅い描画方法をどの状態でも使っていて、StarRuby は、回転等をしない場合だけ高速な描画方法が使われるのかも。
- SDLを使ったライブラリ、PyGame、StarRuby、Ruby/SDL は、フルスクリーン表示時に速度面の恩恵が受けられそうな気配はなかった。その代わり、おかしな表示にもならなかった。
- DXRuby は、フルスクリーン表示すると、環境によっては表示がおかしくなる。録画用PCでは問題なかったが、メインPCとネットブック機では画面が激しく点滅してしまい、使えそうにない状態になった。フルスクリーン表示にも対応させたいなら、現バージョンの DXRuby は選択から外れる。
- ogg等をループ再生したいなら、HSP と StarRuby は不具合があるので選択から外れる。
◎ 2013/05/14追記。 :
DXRuby でフルスクリーン表示が上手くいかない問題ですが、DXRuby1.5開発版を使ったら改善されたことを追記しておきます。
ただ、同梱の、Atame/Ruby 0.0.2 に不具合があるようで…。一つ前の Ayame/Ruby 0.0.1 と組み合わせて使ったほうがいいのかもしれず。
ただ、同梱の、Atame/Ruby 0.0.2 に不具合があるようで…。一つ前の Ayame/Ruby 0.0.1 と組み合わせて使ったほうがいいのかもしれず。
◎ 2017/03/19追記。 :
Dropboxのpublicフォルダが死んだのでファイルの置き場所を変更。
[ ツッコむ ]
以上です。