個人的な見解だけど…

ひまわりTTSneo比較表

作成者 taku 作成日 2004/07/19

ひまわり TTSneo コメント
開発環境 Delphi 6 Visual Basic 6 =引き分け=
DelphiとVBを比べると内容がずれるので、
ここは引き分け
実行方式 インタプリタ インタプリタ =引き分け=
どちらもインタプリタ同士なので、いちお引き分け。
インタプリタは、命令をマシン語に変換しながら
読んでいくので、実行速度が遅くなってしまう。
実行速度 TTSneoより少し速いが、
ほかの言語などと比べると遅め。
実行速度遅め =ひまわり=
これは、開発言語に依存する問題。
もともと、VBよりDelphiの方が速いので、
ひまわりのほうが速いのは当然のこと。
開発環境のサイズ 4.76 MB 2.80 MB =TTSneo=
こう見るとTTSneoは小さい気もするが、TTSneoは、
VB6ランタイムが必要。
ほぼすべてのPCに標準で入っているが、
たまに入っていないPCもある。
ランタイムがけっこう大きかったりする。
標準命令の書き方 終止形 命令形 =引き分け=
ひまわり「〜〜を、表示。」
TTSneo「〜〜を表示しろ。」
どちらも最近、助詞を自由化したので、「表示くださいな」と
命令しても動くようになっている。
GUIオブジェクト 26個 24個+Active X =引き分け=
TTSneoは、Active Xが使えるのは大きい。
しかし、TTSneo用として作られたものでないと行けないので、ちょっと不便。
また、TTSneoにはひまわりにはない「〜〜ビュー」などの部品も扱うことが出きる。
が、ひまわりも、部品の数はTTSneoよりは多いし、実用的な部品もある。
部品は、好みが分かれるところなので、ここは引き分け
Windows API
DLLのインポート
コールバック
関数不可

引数制限なし

擬似的に
構造体も可
構造体
利用不可

引数制限
なし
=引き分け=
ひまわりの主張:
ver.1.34より引数の個数制限はなくなった。
アセンブラでAPIコールの方法を教えてくれたビッキさんに感謝。
ver.1.48よりバイナリ操作が出来るようになったので、
擬似的に構造体も作れるようになった。

TTSの主張:
『直接、機械語を作っているので、かなりTTSの自由度は高い』らしい

TTSneoは、TTS専用に作成したActive Xの機能を利用することができる。
共に、外部DLLを利用することができる。
マニュアル 3.18MB 940KB =引き分け=
量から考えるとひまわりだが、量が多ければ良いというものではないので、この判定は微妙
サンプル 1.33 MB 303 KB =引き分け=
マニュアルマニュアルと同じで、量で決まるわけではないのだが、
ひまわりのプログラム掲示板には、多くの書きこみがあり、中には、参考になる作品も多いので、ひまわりのほうが少し有利。
レジストリ 関連付けの時にのみに使用 使用 =ひまわり=
TTSneoは、インストール時にレジストリを使用しているが、
ひまわりは関連付けさえしなければレジストリは使用しないので、
アンインストールはひまわりのほうがかんたん
エディタの特徴 命令や引数の補完機能がある エディタとフォームデザイナが連携している =TTSneo=
どちらのエディタにも、特徴があっていい。
TTSneoのフォームデザイナとエディタが連携していて、GUIのデザインがしやすい。
ここはTTSneoが有利

//ベンチマークの実験//

テストした環境

OS Windows 98SE
CPU 500MHz
メモリ 190MB

・ひたすら文字列を表示する
ひまわりソース
前は、システム時間
1000(「test」と、表示。)
((システム時間-)/1000)を、言う。
TTSneoソース
 タイマー
1000回繰り返せ
「test」を書け
繰り返し終わり
タイマー−前表示

ひまわり 0.57…秒
TTSneo 4.89…秒

4.32秒の差が出ました。
けっこう差がでましたね。

・ひたすら円を表示する
ひまわりソース
前は、システム時間
1000((0,0)から、(100,100)へ、円形。)
((システム時間-)/1000)を、言う。
TTSneoソース
ウィンドウ1を表示
 タイマー
1000回繰り返せ
100,100で円
繰り返し終わり
タイマー−前表示

ひまわり 1.54…秒
TTSneo 5.54…秒

4秒の差が出ました。
これについては、どちらも1秒を超えてしまいました。

・ひたすらを計算する
ひまわりソース
数字は、0
前は、システム時間
1000(数字は、数字+1)
((システム時間-)/1000)を、言う。
TTSneoソース
数字 0
 タイマー
1000回繰り返せ
数字 数字+1
繰り返し終わり
タイマー−前表示

ひまわり 0.18…秒
TTSneo 0.38…秒

0.20秒の差が出ました。
これはあまり違いはありませんね。


番外

プログラミング言語として有名な、Visual Baiscでこの実験を実行してみました。

・文字列をひたすら表示する。
Private Sub Form_Click()
Dim Start As Single
Start = Timer
For I = 0 To 10000
Print "test"
Next
MsgBox Timer - Start
End Sub

1000回ではすぐ終わりすぎるということなので、10000回実行しました。
結果は0.44秒でした。
10000回で、ひまわりと同じくらいという結果になりました。
さすがVBですね。

・ひたすら円を表示する
Private Sub Form_Click()
Dim Start As Single
Start = Timer
For I = 0 To 10000
Me.Circle (50, 50), 50
Next
MsgBox Timer - Start
End Sub

今回も、10000回です。
1.58秒でした。
またも、10000回で、ひまわりと同じくらい。

・ひたすら計算する
Private Sub Form_Click()
Dim Start As Single, A As Long
Start = Timer
For I = 0 To 10000000
A = A + 1
Next
MsgBox Timer - Start
End Sub

今回も、10000回でも足りないそうなので、10000000回です(爆
1.64秒でした。
VBの速さが見せ付けられた番外でした。

これを書くのに、kiyoさんが書かれた、http://ttsneo.kiyo-soft.net/column-2.htmlと、
ひまわり本家のhttp://hima.chu.jp/text/hima_vs_tts.htmを参考にしました。
また、番外を書くのに、逢坂時響様のご協力にいただきました。

ひまわり:http://hima.chu.jp/
TTSneo:http://hp.vector.co.jp/authors/VA021321/index.html

戻る