C#のWinFormアプリケーションでは、削減システムメモリ消費方法[ターン]

WinFormプログラムが大きな問題となる点となっている、実行時間の長い時間が、より多くの、インターネットは最近、スティックを発見したプロセスの観点から、上記の方法を試してみましたが、メモリがダウンしていて、結果は良好でした。

 

ここでは、参考のために、Winフォームシステムのメモリフットプリントを削減する方法については、オンラインでいくつかの情報をコンパイル:

1、ツールドットトレース3.0をテストし、パフォーマンスの使用は、より多くのメモリ取るあなたのプログラムコードを計算することが可能である
2、必須ガベージコレクション
閉じる、廃棄よりも多く、3を使用し
SetProcessWorkingSetSize(Process.GetCurrentProcess(:4、タイマー、コールあたり数秒).Handle、-1、-1);特定の付録。
5、選択リリースのリリース
、このような文字列+文字列としてはあまりゴミを生成するコードを書く時に6、注意を払うが、ごみの多くを生成します、あなたはStringBuffer.append使用することができます
7、this.Disposeを(); this.Dispose(TRUE);これ。使用クローズ(); GC.Collect();  
8、変数のスコープに注意を払う、変数の特に場合のみ一時的な使用には、メンバ変数として定義されていません。GCは、再利用資源への関係のネットワークに基づいています。
9、メモリリークの詳細の有無を検出し、参照してください。メモリリークBaiduの百科事典を

付録:定期的なクリーニングガベージコレクションコード:
//タイマーを持つプログラムで、タスクマネージャを開いて、関数を呼び出すために数秒ごとに一度、あなたは見つけることが驚かれることでしょう
#region内存回收
[DLLIMPORT(" KERNEL32.DLL "、エントリーポイント= " SetProcessWorkingSetSize " )]
 パブリック 静的 にextern  INT(のIntPtrプロセス、SetProcessWorkingSetSize INTに、minSize、INT maxSizeの)。
///  <要約> 
/// 释放内存
 ///  </要約> 
パブリック 静的 ボイドClearMemory()
{ 
GC.Collect(); 
GC.WaitForPendingFinalizers(); 
もし(Environment.OSVersion.Platform == PlatformID.Win32NT) 
{
App.SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess()ハンドル、 - 1、 - 1 )。
} 
} 
#endregion

 

 

オリジナル:https://www.jb51.net/article/56682.htm

おすすめ

転載: www.cnblogs.com/startdo/p/12001354.html