2012年10月16日火曜日

ビジュアルベーシック速度向上のヒント45種類の




1。プロジェクトをコンパイルする前に、ベーシックを終了し、コンピュータを再起動してください。
そして、プロジェクトをコンパイルすると、メモリに残っている雑用変数が消えて、ファイルサイズを減らすこともできる。

2。プロジェクトをコンパイルする前に、使用していない変数やサブプロシージャ、宣言、コントロールのようなものを削除してください。これは、ファイルサイズを大幅に軽減します。


3。プログラムを終了するときは、ENDステートメントを使用してください。
プログラムの終了コードやQueryUnloadイベントに、Endステートメントを使用すると、プログラムがメモリに残っていないようにしてくれる。


4。 Variant変数の使用を控えること。
変数を宣言するときに型を指定してくれないとベーシックは、自動的にその変数をVariant型に指定することになるが、Variant型の変数は非常に遅いので、プログラムのパフォーマンスを低下させる原因となる。


5。フォームの宣言部にOption Explicitステートメントを追加します。
Option Explicitステートメントを追加したら、宣言されていない変数は使用できなくなりますので、プログラムのエラーを減らすことができる。


6。コントロール名を小さく作りましょう。
フォーム名やコントロールの名前は、EXEファイルに追加されます。したがって、これらの名前をすぎると、プログラムのサイズを小さくすることができる。


7。コメントをたくさん使用してください。
コメントは、EXEファイルに追加されません。代わりに注釈文を頻繁に使用すると、プログラムのソースの可読性が増加されるので、プログラムの生産性とメンテナンスが容易になる。


8。スクリーンの解像度に注意してください。
ユーザーのコンピュータは、常に同じ画面解像度を持つわけではない。
したがって、低解像度で作成されたプログラムは、高い解像度を持つ画面では、問題になることがあります。もちろん、その逆の場合も可能である。


9。プロジェクトをテキスト形式で保存してください。
バイナリ形式で保存されたプロジェクトは、他のエディタで編集するにも不便なだけでなく、実行ファイルのサイズを増加させる原因となる。


10。プロジェクトを頻繁に保存してください。
大きなプロジェクトの作業をしたり、APIで作成されたコードを実行するときは、プログラムが異常終了する場合が発生する。このような場合には、これまでに作業したコードが消えてしまうため、頻繁に保存する習慣を養う。


11。 TEMPディレクトリの一時ファイルを削除してください。
アプリケーションは、複数の一時ファイルを作成、この一時ファイルは、システムの性能を低下させる原因にもなる。よく確認してから削除してくれるのがシステムの性能を向上させる効果を見ることができる。しかし、実行中のプログラムの一時ファイルを削除すると、プログラムが異常終了するので注意が必要である。


12。 Database Transactionを使用すると、Database処理速度を向上させることができる。


13。 Moveメソッドは、Top、Leftプロパティを設定するよりも速い。


14。 MsgboxはBreakpointを設定すると、デバッグ時にイベントの順序を変更することができる。


15。 Logical / Integerフィールドが0以外の値を使用することなく、Trueを使用するのが早い。> = 0 Thenより
If ANumber Thenが速い。


16。複数の行をインデントをしたり、あるいはインデントを解除するときは、ショートカットを使用すると効果的です。 Tabキーは、選択された行をインデントして、Shift-Tabキーは、選択された行のインデントを解除します。


17。コントロール配列を使用せずに、フォームのようなコントロールを複数作成する場合は、コントロールをクリックしたとき、Ctrlキーを押すか、あるいは、目的のコントロールのアイコンをDragさせれば良い。


18。フォームをデザインするときに、コントロールを簡単にフォームに配置するには、コントロールのアイコンをダブルクリックしてください。
これにより、フォームの途中にコントロールが表示されます。


19。ピクチャーボックスやフォームのAutoRedrawプロパティをTrueを設定するとピクチャーボックスやフォームの内容が歪曲されないのですが、メモリを大量に消費する要因ともなる。


20。オブジェクトプロパティウィンドウを呼び出すときに、通常、マウスの右クリックを使用しますが、F2キーを押すと、[オブジェクトの参照]ウィンドウが呼び出されます。


21。 Boolean変数をトグルするときは、IF ... Then ... Elseを使用することなく、PreviewOn = Not PreviewOnのようにするのが早い。


22。 ImageコントロールはPictureBoxコントロールよりもはるかに速い。


23。文字列のサイズを確認するときに、> 0 ThenよりIf Len(SomeString $)Thenが早い。



24。両方の変数を効率的にスワップするには、次のコードを使用する。

a = a Xor b:b = a Xor b:a = a Xor b

これにより、AとBの二つの変数は、スワップされる。

このヒントは、ほとんどのプログラミングの下の言語で動作します。



25。シンプルで効率的なコードは、その性能のコンピュータでも効果的に働く。


26。コントロールが持つ基本的なプロパティを使用すると、速度を向上させることができる。
テキストボックスを使用する場合はtxtBox.TextよりtxtBoxが速く、ラベルコントロールを使用するときはlblLabel.CaptionよりlblLabelが速い。


27。作業するときは、可能な限り小さなサイズのデータ​​形式を使用してください。
Long型や、Double型よりInteger型が速い。


28。デバッグ作業を行うとき、Breakpoints代わりにDebug.Printを使用してください。
プログラムの流れの停止していなくても、効果的なデバッグが可能である。


29。可能な限り小さな数のコントロールを使用してください。
コントロールを多く使うようにすると、プログラムのパフォーマンスが低下する原因となる。
メモリとリソースも占有のみならず、実行速度も遅くなります。


30。少ないオーバーヘッドでグラフィックを描画するには、フォームに直接グラフィックを描画します。


31。 SQLステートメントを使用することなく、Indexを用いたVBのコードを使用するのが早い。 SQLは遅いので、同じ動作をするSQLステートメントを実行するよりも、インデックスを利用したVBのコードを使用するのが早い。

--- >>この部分については、私自身は間違っていると思います。
SQLステートメントは、VBのコードよりもはるかに高速です。実例として、私の郵便番号自動入力機能を実装しようとしたことがありました。テキストボックスで、同名前を入力してEnterキーを押すアドレスと郵便番号が自動的に入力されるようにしたものでした。もちろん、同じ名前が存在するときは、選択できるウィンドウが浮遊んです。ところでここでビベコードを使用する場合は、かなりの時間遅れがありました。郵便番号データはほとんど8000個程度が良いからです。だからSQLステートメントを使用した非常に速い速度を示しました。 SQLは、データベース専用の言語であるため、データベース部分では、必ず必要な部分です。参考までに、非常に少ないデータ量ではビベコードがむしろ早いこともできます。


32。同様の作業をするコントロールを配列で作成すると、コードの量を減らすことができるだけでなく、処理速度も向上します。


33。簡単な作業を処理する関数は、関数ではなく、そのコードを操作する手続きに直接コーディングすることが早いが、ちょっと複雑たり、長くなるコードは関数で記述すると、デバッグも容易だけでなく、コードの量を減らして速度も向上させることができる。


34。多言語をサポートする場合は、リソースファイルを使用すると、余分な作業がなくても多言語をサポートすることができるアプリケーションを作成することができる。


35。条件を利用するときはFor〜Nextステートメントを利用するのが一番早い。


36。リストボックスに大量のデータを一度に入れた場合には、リストボックスをReDrawするため、速度が著しく遅くなるのに、このような場合にはLockWindowUndate APIを使用すればよい。


37。コマンドボタンのClickイベントを発生させるには、Valueの値をTrueに設定すると、されるが、これより直接手続きを呼び出すのが早い。
Call cmdADD_Click

これは、コマンドボタンだけでなく、他のコントロールにも等しく適用される。


38。ファイルから配列を読み取り、記録するときたらずつ読むことよりブロック単位とすることが速度が速い。


39。ファイルを読み書きしているときは、バイナリー形式で作業することが速く、さまざまなタスクを処理することができる。


40。同様の作用をするための定数は、配列に束ねて使用すると便利に利用することができる。


41。大量の条件を処理する状況では、通常の場合を前面に集めて、異常な場合を後ろに集めれば、可読性も高くなって、より効率的になる。


42。頻繁に使用する文字列は定数として宣言して使用すると、コード量が少なくでき、より効果的です。


43。簡単な条件の確認文ならIfや、SelectステートメントよりIIFやSwitchステートメントを使用することが効果的である。


44。コー​​ドでは、関数やサブルーチン、プロパティルーチンを簡単に見つけるには、Shift-F2キーを押してください。


45。変数の型宣言を簡単にするには、Defを利用すれば良い。

DefInt i - iで始まるものはすべてInteger型。
DefStr s、c - sやcで始まるものはすべてString型の変数。
DefInt ik - iからkで始まるものはすべてInteger型の変数。

DefBool(Boolean)
DefByte(Byte)
DefLng(Long)
DefCur(Currency)
DefSng(Single)
DefDbl(Double)
DefDec(Decimal)
DefDate(Date)
DefStr(String)
DefObj(Object)
DefVar(Variant)

以上がベーシックで使用する変数を指定門である。

0 件のコメント:

コメントを投稿