- PR -

プロセス名参照時におけるメモリ使用量増加について

1
投稿者投稿内容
月下
会議室デビュー日: 2006/04/25
投稿数: 2
投稿日時: 2006-04-25 19:41
初投稿です。宜しくお願い致します。

フォームロード時にアプリケーションの2重起動防止処理を
記述しているのですがその際にプロセス名を参照する箇所で
メモリ使用量が3M程増えています。
プロセス名を参照するだけで3Mもメモリ使用量が増加するもの
でしょうか?
同じような疑問にぶつかった方いらっしゃいましたらご教授願います

実際のコードを下記に示します

コード:

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim insProcess As Process()   'プロセスインスタンス
    Dim strProcessName As String  'プロセス名

    '二重起動のチェック
    strProcessName = Process.GetCurrentProcess.ProcessName  'この部分で増加します
    insProcess = Process.GetProcessesByName(strProcessName)

    If UBound(insProcess) > 0 Then
         Call MsgBox("このアプリケーションは既に起動しています", _
             MsgBoxStyle.Critical + MsgBoxStyle.OKOnly, "二重起動")
         Application.Exit()
         Exit Sub
    End If

End Sub



環境:
・WindowsXP SP2
・VS2003[VB.NET]
・Windowsフォーム
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-25 20:22
引用:

月下さんの書き込み (2006-04-25 19:41) より:

プロセス名を参照するだけで3Mもメモリ使用量が増加するものでしょうか?


全プロセス数に因ります。

引用:

フォームロード時にアプリケーションの2重起動防止処理を記述しているのですが


メイン エントリ ポイントに移す "べき" です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-25 20:23
あ、二重起動の禁止による負荷を下げたいのであれば、
Mutex を使用する方法に切り替えてみては如何でしょう?

  二重起動を確実に禁止する

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
月下
会議室デビュー日: 2006/04/25
投稿数: 2
投稿日時: 2006-04-26 10:16
じゃんぬねっとさん、返信有難うございます。

お教え頂いたMutexを使用する方法に変更したところ
メモリ使用量の増加を1M以下に減らすことができました。
(あと、処理自体をエントリポイントに移動しました;)

他にも起動時に色々メモリを喰ってる処理があるので
今回のように方法を切り替えたりして色々試してみます。
有難うございました。
1

スキルアップ/キャリアアップ(JOB@IT)