環境の違いによるHyperCard実行速度の違い

拙作「HC速度計」を使ってさまざまな環境で動作速度を測定して頂きました。その結果を元に、環境が異なるとHyperCardの速度にどう影響するのかを考察します。

▼HC速度計のダウンロード

OS Xではどうなるのか?

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ユーザーの皆様に感謝します。

▲研究室の入り口へ