HSPLet 3.0 は、Yuki さんが開発されている、HSP 中間コードを Java アプレットに変換するソフトです。
これを使用すれば、HSP で書いたスクリプトを、Web ブラウザ上で Java アプレットとして動作させることが可能です。
Java アプレットですから、Windows 以外の環境でも実行可能となります。
HSPLet の開発元
Group Finity Web Site
http://www.group-finity.com/
履歴
2005/12/26 開発元サイト復活につき HSPLet 再頒布終了
2005/12/22 HSPLet 3.0 beta6 再頒布
2005/12/20 勝手にページをアップ。
というわけで、本家 HSP 3.0 インタープリタと HSPLet 3.0 との実行速度を実際に比較します。ここでは、傾向の異なる二種類のベンチマークスクリプトを使用します。
(注意)
このベンチマークテストは、HSPLet 3.0 のベータバージョン (beta 6) で実行しています。正式版 HSPLet とは性能が違う可能性がありますので、ここでの結果は参考値にとどめてください。
◆ 素数列挙ベンチ
まず、エラトステネスの篩いを用いた素数列挙スクリプトで、100 万までの素数を列挙するのにかかる時間を測定します。このテストでは、配列アクセスの速度が重要となります。
(時間計測のため Win32API の timeGetTime() を使っていますが、この API は HSPLet にも実装されているため、そのまま使用できます。)
素数列挙ベンチを開く (スクリプト付き)
このテストスクリプトの実行結果は、Pentium 4 2.6CGHz (J2SE 1.5 JRE) のマシンだと、HSP インタープリタが 1609ms, HSPLet が 656ms でした。Athlon 64 2.2GHz の環境では、HSP インタープリタが 1265ms, HSPLet が 422ms でした。
HSPLet のほうが、2.4 〜 3.0 倍高速に実行されています。
◆ 画面描画ベンチ
次は、描画命令 line, boxf, circle, gcopy, gsquare を使用したベンチマークテストです。HSP インタープリタ、もしくは HSPLet ライブラリ内部の描画プログラムの実行速度が試されます。
画面描画ベンチを開く (スクリプト付き)
このテストスクリプトの実行結果は、Pentium 4 2.6CGHz のマシンで、HSP インタープリタが 297ms, HSPLet が 1281ms でした。Athlon 64 2.2GHz の環境では、HSP インタープリタが 187ms, HSPLet が 938ms でした。
画面描画のベンチマークでは HSPLet は HSP インタープリタにはかなわず、HSPLet の実行速度は HSP インタープリタの 1/5.0 〜 1/4.3 となってしまいました。gsquare の実行速度の差は特に顕著で、スコア差の多くの部分を占めています。
このように、HSPLet 3.0 の実行速度には、はっきりとした得手不得手があることがわかります。
描画処理が大きなウェイトを占めるゲームプログラムなどでは高速化が難しいかもしれませんが、描画処理を簡略化する代わりに内部 AI を高度化するなど、HSPLet が得意とする処理に重点を置けば、本家 HSP インタープリタに迫る速度を実現できそうです。
HSPLet 3.0 は、従来の HSPLet とは比較にならないくらいの高速さから、従来ほど本家 HSP インタープリタとの速度差を感じることがありません。それどころか、内部演算は HSP インタープリタよりも高速になっているくらいです。
それに、HSP 3.0 で加わった新しい描画命令も使用できます。
Web ブラウザで動くゲーム等を HSP で手軽に開発できるというのが HSPLet の大きな魅力ですが、HSPLet 3.0 ではその実用性が大幅に向上し、より楽しめるものとなっています。