どうしても何ともならにのでお聞きしたいんですが、
例えばボタンを押すと何らかの処理が実行される場合、
そのレスポンスを(できれば大幅に)上げる方法ってあるんでしょうか?
もしよかったらご教授お願いします。
すみません。レスポンスって何ですか?
レスポンスって言うのは、返信とかのことらしいから、
反応の速さなんでしょうけど…。
それを早くするにはと言うと…?
一般的なアドバイスを言うと、
1.同じ計算を何度もしない(変数などにできるだけ格納する)
2.同じコントロールへの参照が続くときにはWith〜を使う
3.力技を多用しない^^;
4.OCXよりAPIのほうを多めに使う
一般的に、VBだけでやった事より、APIでやったほうが早くすむらしいです。
わたしはあんまり好きじゃないですけど。
あと、無理やりなことばっかりすると、CPUに負担がかかるので、どうしても遅くなるでしょうね^^;
当然、処理によって様々な手法がありますが
アルゴリズム強化が一番でしょうね。
たかみちえさんも書かれていますが
できるだけ、同じ処理(無駄な処理)をしない、
っていうのが、アルゴリズム強化の最大のポイントです。
また、膨大な演算を必要とする場合は
ネイティブコンパイルを行うことで速度の飛躍的な向上がはかれます。
場合によっては、C言語やアセンブラを使うのもいいかもしれません。
また、”レスポンス”の向上という意味では
画面表示を次々と切り替える、というものがあります。
ファイルコピーをすると、プログレスバー?でしたっけ。
ああいうのが表示されて、現在の進行状況を表示されますよね。
あれを表示するかしないかでも、ユーザーの処理に対する不満は
大きく違ってくると思います。
要は、ユーザーが”遅い”と感じなければ
どれだけ時間がかかろうが、
レスポンスが悪いとは言わない、ってことです。
書いたままほかりっぱなしですいませんでした!
いくつも方法を考えていただきありがとうございました。
一つづつ試してみます。
おまけ、ですけど…。
同じような感じで、FormはLoadイベントの最初に、Me.Showで表示させたり、
あと時間がかかるときは、マウスアイコンを変えるとか。
それから、なるべくむやみにフォームを開放しない。
(Loadイベントがいつ起こるか、予想もつきづらいし…)
そして、Me.Showとかの前にはDoEventsを使う。
これで、すこしは早く感じられると思います。
起動や動作が遅いメモ帳とかいやですからねぇ…^^;
画像ファイル(BMP・JPGなど)を指定したプリンタ(ドライバ)に出力し、
出力先のポートをFILE:にして指定したファイル名で保存する処理。
(ファイル名はダイアログから入力するのではなく、プログラムで付ける)
これをVBで実現しようとしています。
VBの関数、APIを探してみたのですが該当するものがわかりませんでした。
もしご存知の方がいらっしゃいましたらご助言のほどよろしくお願い致します。
(環境:Windows2000・VB6.0SP5)
ツイート |