◀一般トップへ
  • 2828 設定画面でメモリを消費します。
    • 2847 Re: 設定画面でメモリを消費します。
      • 2851 Re2: 設定画面でメモリを消費します。
        • 2853 Re3: 設定画面でメモリを消費します。
  • [2828] 設定画面でメモリを消費します。 otomo 2003年03月18日 17:21

    共通設定/タイプ別設定のプロパティーシートを開くと、
    開いただけでメモリを大量に食ってしまうみたいです。
    開く前に7MBくらいだったのが、開いただけで、12MB
    位まで跳ね上がります。

    プロパティーシートを閉じてもメモリを食いっぱなしの
    ようで、何かしらの資源の解放漏れとかってないですか?

    うちで改造して使っているsakuraも修正したいので
    解決法を教えていただけると助かります。

    PS:
     ファイルを保存するとき、ファイルが読取専用・隠し
     ファイルだったとき、
     「上書き保存できません」メッセージが出たあとで、
     隠し属性が外れてしまうようです。

    PS2:
     置換の「選択始点挿入」が動かないようです。
     全置換の高速化を図ったときにデグレッたみた
     いですね。

    • [2847] Re: 設定画面でメモリを消費します。 げんた 2003年03月30日 05:36

      >共通設定/タイプ別設定のプロパティーシートを開くと、
      >開いただけでメモリを大量に食ってしまうみたいです。
      プロパティシートでは設定のキャンセルを行えるようにするために内部構造体のコピーを作って操作した上でOKでそれを書き戻すようになっています。

      たぶんその構造体(Common)が巨大なのだと思います。
      直すにはその辺の作りを見直さなくてはなりません。

      >プロパティーシートを閉じてもメモリを食いっぱなしの
      >ようで、何かしらの資源の解放漏れとかってないですか?
      一旦取ったメモリをOSに戻さないのはCのメモリマネージャの常なのでメモリリークではないと思います。(といいつつ、誰かpurifyかけてくれないかなとも思ってみたり)

      > ファイルを保存するとき、ファイルが読取専用・隠し
      > ファイルだったとき、
      > 「上書き保存できません」メッセージが出たあとで、
      > 隠し属性が外れてしまうようです。
      さらにメモリリークしてました。

      >PS2:
      > 置換の「選択始点挿入」が動かないようです。
      > 全置換の高速化を図ったときにデグレッたみた
      > いですね。
      これは、また今度orわかる人お願い。
      • [2851] Re2: 設定画面でメモリを消費します。 げんた 2003年03月30日 15:15

        >たぶんその構造体(Common)が巨大なのだと思います。
        プロパティシートで使っているデータのサイズを調べてみました。(単位 byte)

        m_Common 10224
        m_cLookup 12
        m_pKeyNameArr 10000
        m_CKeyWordSetMgr 2020848
        m_MacroTable 6640
        m_szTransformFileNameFrom 4160
        m_szTransformFileNameTo 4160

        m_CKeyWordSetMgrが2MB近く使っています。これはタイプ別でも使われています。
        実際に使う数と無関係に最大領域を使ってますからね。直したいところなんですが。

        あとの3MBは何だろう...

        キーワード編集機能って本当に必要なんだろうか。外部ファイルをエディタで編集してもらえばすむような気もしますが...
        • [2853] Re3: 設定画面でメモリを消費します。 げんた 2003年04月01日 01:59

          >m_CKeyWordSetMgrが2MB近く使っています。これはタイプ別でも使われています。
          とりあえず、タイプ別設定では参照のみなのでコピーを作らないようにしました。
          共通設定はもうすこし考えないとダメみたいです。