◀Unicode版開発トップへ
  • 196 修正要望
    • 206 Re:修正要望
      • 254 Re2:修正要望
  • [196] 修正要望 Uchi 2008年03月08日 10:52

    ファイルのセーブ・ロードの整理を行っているようですが、
    そのあたりの所の修正をお願いいたします。

    現在のUnicode版では英数のみのファイルで1GB(Unicodeで2GB)で落ちるようですが、
    まず、落ちないようにしてほしい。
    そして、1GB以上のファイルを読み込めるようにしてほしい。

    以上2点お願いしたいと思います。

    2つ目は、ファイルのロードだけではないと思うので難しいでしょうがお願いいたします。
    • [206] Re:修正要望 kobake 2008年03月09日 00:40

      ▼ Uchiさん
      > ファイルのセーブ・ロードの整理を行っているようですが、
      > そのあたりの所の修正をお願いいたします。
      >
      > 現在のUnicode版では英数のみのファイルで1GB(Unicodeで2GB)で落ちるようですが、
      > まず、落ちないようにしてほしい。
      > そして、1GB以上のファイルを読み込めるようにしてほしい。
      >
      > 以上2点お願いしたいと思います。
      >
      > 2つ目は、ファイルのロードだけではないと思うので難しいでしょうがお願いいたします。

      要望として認識しておきます。
      が、この変更に関してはけっこう手間がかかりそうなので先延ばしにさせてください。

      1GB読み込めるようにするにしても、
      今のロジックでは読み込み完了まで操作が効かないので、
      個人的にはまずそこを直したいっすねー。


      ちなみに自分のPCは物理メモリ2GBですが、
      1GBのANSI英字テキストファイルを
      サクラエディタ1.6.1.0でロードしようとしたら
      途中で異常終了しました。

      Uchiさんの環境でUNICODE版サクラエディタが落ちた原因は
      UNICODE版固有のロジック的な問題ではなく、単にメモリの枯渇だと想像しています。
      UNICODE版では単純計算でANSI版の2倍のメモリを消費するので
      メモリ枯渇に達するのが早いはずです。

      兎にも角にもメモリ枯渇時の対処はあるにこしたことはありません。
      最も簡単な実装としては(根本的な解決策では無いですが)、
      ロード前に理論上の使用メモリを算出し、
      それがハードの限界を超えるようであれば
      警告メッセージを出す、くらいが初期の策としては妥当かな、と考えています。
      (作業対効果のコストパフォーマンス的に)
      • [254] Re2:修正要望 Uchi 2008年03月15日 13:51

        ▼ kobakeさん
        > Uchiさんの環境でUNICODE版サクラエディタが落ちた原因は
        > UNICODE版固有のロジック的な問題ではなく、単にメモリの枯渇だと想像しています。
        > UNICODE版では単純計算でANSI版の2倍のメモリを消費するので
        > メモリ枯渇に達するのが早いはずです。
        >
        > 兎にも角にもメモリ枯渇時の対処はあるにこしたことはありません。
        > 最も簡単な実装としては(根本的な解決策では無いですが)、
        > ロード前に理論上の使用メモリを算出し、
        > それがハードの限界を超えるようであれば
        > 警告メッセージを出す、くらいが初期の策としては妥当かな、と考えています。
        > (作業対効果のコストパフォーマンス的に)
        返事が遅くなってすみませんでした。
        メモリの件は承りました。

        ただし、メモリ枯渇以外にもおそらくバッファのインデックスにint(32ビット)を使用しているためにおかしくなっている部分があると思います。
        ANSI版の話で数年前の話ですが、メモリ4G、Win2003Serverで2G以上のファイルを開こうとしていたときのことですが、メモリにはまだ余裕がある(物理メモリではなくコミットチャージベースで)のに落ちてしまう現象がありました。
        ファイルファイルサイズを1.9..G程度にしたら読み込むことが出来ました。
        (2Gでは読み込むことが出来ませんでした)
        またそのファイルは、1.5G、WinXpでも読み込むことが出来た(半日かかりました)ので、メモリのでは無く、ロジック的なところ(intの限界)に問題がありそうです。

        現実的には、GB over のファイルを扱うことは多くは無いので入り口でチェックしてもらえればOKかなと思います。