|
分類:[C#]
実行:XP emb (EWF + Hibernation / CF:2GB RAM:512MB) 開発:XP or XP emb .net2.0/System.Windows.Forms
いつもお世話になっています。 マネージドコードでWindow最小化させてもページアウトをさせないようなアプリの作り方(オブジェクトの生成の仕方)について教えて下さい。(無理?)
★ 現在の状況 (1) ハードウェアを制御し、各種ハードウェアからデータを収集して "***.csv" にデータをストレージしていくメインアプリ (2) 前述の"***.csv"から時系列のデータを表示するグラフアプリ (3) グラフアプリが起動していない場合はメインアプリから起動され、グラフアプリが起動している場合は最大化(メインアプリから操作)、最小化(グラフアプリから操作)ShowWindow()
を作ったのですが、プロットするデータが多いため、グラフアプリのレスポンスが少々悪いため、改善しています。
改善点1 "***.csv" から取り込んでいたデータの代入先: SortedDictionary<DateTime, Single> --> SortedList<DateTime, Single> (^_^;) 改善点2 再描画回数の低減
以上でそこそこレスポンは良くなったのですが、グラフを最小化-->最大化させた後の動きがちょっと悪いのです。 グラフアプリを最小化、最大化しながらタスクマネージャ見ていたところ (1) 初回起動時 --> メモリ使用量:14M/仮想メモリサイズ:15M (2) ちょっと重いcsv取り込み --> メモリ使用量:40M/仮想メモリサイズ:40M (3) グラフを最小化 --> メモリ使用量:1M/仮想メモリサイズ:40M (4) グラフを最大化 --> メモリ使用量:40M/仮想メモリサイズ:40M
というような動きをします。 Windowsは(2)-->(3)へ移行する際、非アクティブになったWindowのオブジェクト(メモリ)をページアウトさせているように 感じたのですが、正しい認識でしょうか? ヒープの確保の際に、使用メモリ領域のコミット等はできないのでしょうか?(VS2005) 昔、どこかでヒープ領域指定していたような気がするのですが、最近VSいじっていないので忘れてしまいました(^_^;)
以上宜しくお願い致します。
|