拙作「HC速度計」を使ってさまざまな環境で動作速度を測定して頂きました。その結果を元に、環境が異なるとHyperCardの速度にどう影響するのかを考察します。
MacOS Xでは古いアプリケーションはClassic環境で動作します。HyperCardは残念なことに古いアプリケーションですので、Classic環境で動作するのです。ともかく、大きな問題も無く動作するらしいのですが、スピードが遅いです。測定結果を見てみましょう。
OS9.1 | OS X10.0.1 classic | 速度比 | |
スクリプト実行 |
852 |
309 |
36% |
カード移動 |
101 |
73 |
72% |
アイコン表示 |
398 |
193 |
48% |
文字表示 |
209 |
129 |
62% |
iBook SE 366MHz HyperCard 2.4 Player |
スクリプト実行速度が大きく落ちています。カード移動速度があまり落ちていないところを見ると、表示スピードそのものは大して落ちていないようです。実際使ってみた感触では表示速度が68K並みということなので、なんとも言えませんが。(01/11/19追記:OSXでは色数を1677万色から32000色に落とすと高速化するようです。カード移動で50%〜70%程度。)
OS9.2 | OS X10.1.5 classic | OS9を基準にした速度比 | OS X10.2 classic | OS9を基準にした速度比 | |
スクリプト実行 |
2022 |
923 |
46% |
1213 |
60% |
カード移動 |
791 |
109 |
14% |
101 |
13% |
アイコン表示 |
1142 |
400 |
35% |
406 |
36% |
文字表示 |
656 |
268 |
41% |
261 |
40% |
iBook 700MHz HyperCard 2.3プレイヤー |
(2002/7/6)iBookを買ったので早速測定してみました。表示速度が大きく落ちているという結果に・・・。ていうか、OS9.2での表示速度が妙に速いな?RADEONめOS9.2 では処理を手抜きしてやがる。ドライバ最悪なことで有名なATi製のRADEONですから、この速度差はグラフィックドライバの問題でしょうかね。
OSX 10.3.8 | |
スクリプト実行 |
1770 |
カード移動 |
340 |
アイコン表示 |
795 |
文字表示 |
482 |
Mac mini 1.42GHz HyperCard 2.3 |
(2005/3/12)Mac miniも付属DVDでClassic環境をインストールして、HyperCardを実行できます。速度もこれだけ出れば物足りないことは無いでしょう。
HCのバージョンによる違い
現在入手できるバージョンでの速度差を計測したものです。
2.4.1Player | 2.3Player | 2.2.1Lite | |
スクリプト実行 |
949 |
894 |
203 |
カード移動 |
271 |
228 |
201 |
アイコン表示 |
476 |
480 |
274 |
文字表示 |
294 |
220 |
178 |
PowerBook G3 333MHz Mac OS 8.6 |
バージョンが新しいほど高速なようです。2.3からPowerPCネイティブのプログラムになっているので特に高速化しています。ただし、Playerではスタックの作成が出来ないので、2.2Liteの存在価値はあります。
英語版と日本語版、製品版とプレイヤー
英語版と日本語版の速度は変わりません。また、製品版とプレイヤーの速度も変わりません。
2.4.1英語版 | 2.4.1日本語版 | 2.4.1Player | |
スクリプト実行 |
920 |
949 |
950 |
カード移動 |
287 |
271 |
260 |
アイコン表示 |
457 |
476 |
460 |
文字表示 |
281 |
294 |
285 |
PowerBook G3 333MHz Mac OS 8.6 |
実は、システムフォルダにWorldScript機能拡張が入っているかどうかで多少速度が変わります。日本語処理はHyperCardが行っているのではなく、OSが行っているものと考えれば英語版と日本語版の速度の違いがないのも納得できます。
G4マシンとオールドマシン
世の中にはいまだに68Kマシンや第1世代PowerPCで頑張っている人もたくさんおられます。最新機種とそれらの機種を比較してみましょう。
G4-733MHz | G4-500MHz Dual | PowerPC603-80MHz | 68LC040-33MHz | |
スクリプト実行 |
442 |
375 |
24 |
44 |
カード移動 |
579 |
502 |
25 |
27 |
アイコン表示 |
601 |
489 |
23 |
37 |
文字表示 |
450 |
391 |
23 |
28 |
HC2.2.1Lite |
余裕で一桁違います。HC2.2.1だからエミュレーションなのに・・・。これだけ処理速度が違えば、もう別物ですね。
Macエミュレータでの性能
Pentium4マシンを入手したので、エミュレータでどこまで頑張れるのかテストしてみました。
G4-400MHz HC2.3Player |
Pentium4-1.4GHz 256Color HC2.2Lite |
Athlon1700+(1.43GHz) 32000Color HC2.2Lite |
MacBook CoreDuo2.0GHz 256Color HC2.2Lite |
G3-333MHz HC2.2Lite |
|
スクリプト実行 |
1174 |
308 |
634 |
762 |
203 |
カード移動 |
551 |
162 |
355 |
452 |
201 |
アイコン表示 |
651 |
280 |
609 |
753 |
274 |
文字表示 |
470 |
215 |
392 |
625 |
178 |
エミュレータ:BasiliskII on Windows エミュレータに用いたOS:漢字Talk7.5.3 |
G3の68Kエミュレーションモードには勝ってしまうのか!G4-nativeにはスクリプトで4分の1、その他では半分くらいの性能があるわけです。Athlon(AMD社製の安くて速いけど・・・なCPU)なら倍のスピード出ます。クロックほとんど変わらないのに。エミュ使うならIntelはダメですよ。
実際にいろいろなスタックを試してみると、確かにまともな速度で動いています。負の数のx乗はエラーになるくらいで、ほとんどのスタックが動作します。しかし、視覚効果がやたら遅いです。dissolveなんて15秒以上かかります。
(2004/09/03追記)視覚効果が遅いのを改善するために、「ドクターエフェクト」というスタックを作りました。▼HyperCardスタックとXCMDへ これでええ感じの視覚効果になります。
謝辞
実験に参加してくれたHyperCardユーザーの皆様に感謝します。