1

私は自作の 2000 行の VBScript スクリプトを持っていますが、コードを追加するたびに徐々に遅くなっていきます。これはプライベートなデバッグ支援として作成されたもので、今では非常に便利になっています。磨いて商品と一緒に発送したいです。

コンパイルしてEXEにすることで高速化できると思いました。さらに、コンパイル プラットフォームが提供する可能性のある追加のライブラリを使用すると、ツールのユーザー インターフェイスが必要になります。また、不足している機能が必要な場合は、 Win32関数を呼び出してスクリプトを拡張することも検討しています。

VB 6.0 を持っているか、外部コンパイラを購入できます。しかし、Windows Vista で正常に動作するには、作成したプログラム (コンパイラ自体ではない) も必要です。私の最良の選択肢は何ですか?

4

4 に答える 4

4

Visual Basic Express Edition ( http://www.microsoft.com/express/vb/ ) をダウンロードして、ツールを VB.Net に移植することをお勧めします。ただし、この方法には欠点が 1 つあります。プログラムが .Net に依存することになります。ほとんどの場合、これは大きな問題にはならないはずです。現在では、ほとんどのマシンが .Net 2.0 を備えているはずですが、それでも心に留めておくことをお勧めします。

私は VB6.0 には近づかないでしょう。ただし、VB.Net 以外に、使用できる優れた Basic コンパイラを知りません。

于 2008-09-28T05:31:16.173 に答える
4

遅さには、解釈されているという事実だけではありません。より高速にするために、おそらくさまざまな最適化を行うことができます。コードのどの部分が最も遅くなるかを見つけて、それらを速くするようにしてください。

コードの内容によっては、VB6 で問題ない可能性があります。自然なテキスト/ファイル名を扱う場合は、VB6 は Unicode を十分にサポートしていないため、VB.net を使用することをお勧めします。

しかし、コンパイルしても速度が遅くなる可能性があると感じています。コンパイルによって実行速度が向上するだけで、効率が向上するわけではないからです。

于 2008-09-28T05:36:20.560 に答える
3

ええと...そこには多くの「優れた」BASICコンパイラがあります。

すぐに思いつくものです。かなりの数がMindteqサイトにリストされています。(Jabaco は特に興味深いです - VB6 は Java で再表現されました。私はそれをいじりましたが、非常に有望に見えます!)

しかし、VBScript コンパイラに話を戻すと、それらは存在します。彼らが行うことは、コードをトークン化し、それらの周りにある種のラッパーを配置することです。それらがより速く実行されるかどうかは議論の余地があります。

于 2009-06-04T04:30:27.557 に答える
0

プログラムが何をしているか、または処理しているデータの量を詳しく知らずに言うのは困難です。

私は Franci に同意します - VB6 はもはや販売もサポートもされていないので、VB.Net はコンパイルされたコードに行く方法です。(Express は無料です。) VBScript は VB.Net にあまり似ていないため、すべてが WMI クエリまたは LDAP クエリなどでない限り、移植するにはかなりの作業が必要になる可能性があります。

ボトルネックがどこにあるかを確認するために、タイミングを計ることから始めます。大量のループやマルチレベルの関数呼び出しを行っていない限り、おそらく外部呼び出しで行き詰っています。

wscript.echo "Begin: " & Time
tStartTime = Timer
'... do stuff ...
tStopTime = Timer
wscript.echo "Elapsed time: " & tStopTime - tStartTime

乾杯

于 2009-03-13T08:16:10.317 に答える