1 件の投稿を表示中 (合計 8 個)
  • 作成者
    投稿
  • #32059
    yasuji
    参加者

    江村様

    いつもお世話になっております。
    yasujiです。

    EmEditorのHPの下記の記載について質問があります。
    巨大ファイルに対応Large File Support)に下記の通りの記載があります。

    <b>
    EmEditor は、他のエディタでは単純に扱うことができないような巨大ファイルを扱えるように最適化されています。16 TB までのファイルは、少しのメモリだけで完全に開くことができます。それよりも大きなファイルの場合は、EmEditor は、巨大ファイル コントローラを使用して、巨大ファイルの一部だけを開くことができます。
    </b>

    16 TB までのファイル
    最大 16 TB (または 1.09 兆行) という非常に大きなファイルを、少ないメモリでスムーズに開くことができます。

    16 TB までのファイルLarge Files Up to 16 TB)に下記の通りの記載があります。

    <b>
    64 ビット版 EmEditor では、メモリが許す限り、16 TB (17,592,186,044,415 バイト) または 1.09 兆行 (1,099,511,627,775 行) までのファイルを開けるようになりました。32 ビット版では、256 GB (274,877,906,943 バイト) または 21.4 億行 (2,147,483,647 行) までのファイルを開けるようになりました。さらに大きなファイルを開く場合には、本体に内蔵されている巨大ファイル コントローラを使用することができます。
    </b>

    EmEditor は、どんなサイズのファイルも速く開くことができるようになっています。EmEditor で巨大ファイルを開こうとすると、メモリを使い果たすのではなく、ディスク上のテンポラリ ファイルを使用します。一方、他の多くのエディタでは、ファイルを開こうとすると、メモリ上でファイル全体を保持しようとするため、最終的にファイルを開くことに失敗してしまいます。既定では、EmEditor では、300 MB 以上のファイルを開こうとすると、一時ファイルを使用します。この値は、[カスタマイズ] ダイアログの [高度] タブで表示、編集できます。これ以上のサイズのファイルを開こうとすると、一時ファイルを使用するだけでなく、複数行コメントなど、一部の強調機能が無効になります。行の折り返し機能も、速度への最適化のため無効化されます。巨大ファイルを開く場合には、一時ファイル フォルダに充分なディスク残り容量が存在することを確認してください既定の一時フォルダは、%TEMP% 環境変数で指定されているシステムの一時フォルダです。このフォルダは、他の充分に余裕のあるディスク上のフォルダに変更できます。

    (Q1)
    16TBまでのファイルを少ないメモリでスムーズに開くことができるとしていますが、江村様はどのバージョンでどういうPC環境で16TBのテキストファイルをどのくらいの時間で開くことができた実績を持っていると思いますので、その情報を開示いただけますでしょうか?
    また、「少ないメモリ」の具体的なメモリサイズを教えていただけますでしょうか?
    必要なPC環境情報は下記のとおりです。

    CPU: メーカ、型番
    RAM: サイズ
    OS: Windowsバージョン
    HDD(SSD): ディスクサイズ、16TBファイルを開くのために必要な空き容量
     EmEditorの一時フォルダがC:以外のドライブの場合は、追加でそのドライブの上記の情報
    Windowsの仮想メモリ設定内容
    EmEditorが16TBファイルの開く処理を完了するまでの時間
    16 TB までのファイルLarge Files Up to 16 TB)のEmEditorの画面画像の一番下に「83190.860秒」と記載があり、約23時間(=23.1085722222222=83190.860 / 3600)となっていました。

    (Q2)
    EmEditorのHPに記載されている下記の説明について、EmEditorの[ディスクベースを有効にする(B)]をONに設定した状態で、16TBと1TBのファイルを開くために必要な物理メモリサイズを推定する方法で検証しました。

    • 「最大 16 TB (または 1.09 兆行) という非常に大きなファイルを、少ないメモリでスムーズに開くことができます。」参照:巨大ファイルに対応Large File Support
    • 64 ビット版 EmEditor では、メモリが許す限り、16 TB (17,592,186,044,415 バイト) または 1.09 兆行 (1,099,511,627,775 行) までのファイルを開けるようになりました。」参照:16 TB までのファイルLarge Files Up to 16 TB

    物理メモリの推定方法は、(F2)の399 GBのXMLファイルを開きタスクマネージャを使用して[詳細]タブの「ワーキングセット(メモリ) [KB]」を取得して、開いたファイルサイズとの比率を求めました。そして、その比率を使用して、16TB(UTF-16LE-BOM)と1TB(UTF-16LE-BOM)のファイルをそれぞれ開いたと仮定して、必要な物理メモリサイズを算出して推定しました。
    ファイルを開くために必要な推定した物理メモリサイズは、16TB(UTF-16LE-BOM)の場合は2715.1 [GB]、1TB(UTF-16LE-BOM)の場合は169.7 [GB]でした。
    この推定結果から、いずれも通常のデスクトップPCに搭載される一般的な8~32GBのメモリサイズではまず開くことができません。また、必要とされるスワップファイルサイズ(ページファイルサイズ)やEmEditorの一時フォルダの必要サイズが不明です。このような情報では、仮に1TBのファイルを一般的なデスクトップPC上で開いた場合、Windowsシステムが不安定になる可能性があります。
    1TB以上のファイルを扱うことはごく稀です(ソフト開発者でもテスト用データで扱うかどうか)。(Q1)の回答次第ですが、一般的なデスクトップPCに搭載されている8~32GBのメモリサイズで、1TB~16TBのファイルを開くことができるのか?物理メモリをすべて使用するなどでWindowsシステムへの悪影響の有無はあるのか?について、情報を開示いただけますでしょうか?
    江村様でしたら、EmEditorの開発者ですので、必要とする物理メモリサイズ、一時ファイルサイズを正確に計算することができると思います。

    上記説明の根拠情報(文章中に書くとわかりにくくなるため分離した):
    〔使用環境〕
    CPU : AMD Ryzen 9 3900X 12-Core Processor 3.80 GHz (12 Core, 24 Thread)
    RAM : 128 GB
    OS : Windows 10 Pro 64bit 22H2 build 19045.5011
    MB : ASUS PRIME X570-PRO
    〔使用ファイル〕
    enwiki-20241020-pages-meta-current.xml.bz2 (file size: bz2 39.3 GB, xml 200.2 GB)を展開したXMLファイル

    EmEditorの設定
     [ディスクベースを有効にする(B)]: ON
     そのほかの設定は、デフォルトのまま。

    推定に使用したファイル
     (F1)jawiki-20241020-pages-meta-current.xml
      UTF-8, 215048617028 [Byte], 2,950,733,358 行
     (F2)jawiki-20241020-pages-meta-current.utf-16le-bom.xml
      (F1)をEmEditorで開き、UTF-16LE BOM付きとして保存したファイル
      UTF-16LE-BOM, 428539135748 [Byte], 2,950,733,358 行

    (F2)をEmEditorで開いた直後のメモリ情報
     ワーキングセットメモリ 69351956 [KB]

    (F2)についてのワーキングセットメモリとファイルサイズの比率
     69351956 / 428539135748 = 0.000161833424802495

    16TB(UTF-16LE-BOM)のファイルを開くのに必要な物理メモリサイズ
     16TB * (69351956 / 428539135748) = 2847003717.33049 [KB]
     2847003717.33049 / Pow(1024 , 2) = 2715.11432393121 [GB]
     ==> 2715.1 [GB]

    1TB(UTF-16LE-BOM)のファイルを開くのに必要な物理メモリサイズ
     1TB * (69351956 / 428539135748) = 177937732.333156 [KB]
     177937732.333156 / Pow(1024 , 2) = 169.694645245701 [GB]
     ==> 169.7 [GB]

    #32067
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    (質問1)
    こちらのリンク
    https://jp.emeditor.com/text-editor-features/large-file-support/files-up-to-248gb/
    にある画面図の通り、15.9 TB、17,592,101 行の ASCII ファイルを処理するのに、83,190.860秒かかりました。使用したPCは、確かWindows 10 (64-bit)、Core i9-9900K、64GB RAM、2TB SSDだったと思います。ファイルが保存されているディスクは、Western Digital の 18TB ハード ドライブ (WD181KRYZ) です。

    (質問2)
    ファイルのサイズよりも、行数が重要になります。つまり、1行あたり1000文字のファイルよりも、1行あたり10文字のファイルの方が、より多くのメモリを必要とします。ファイルを開くことに失敗する場合は、仮想メモリを増やす必要があります。仮想メモリの増やし方については、こちら
    https://jp.emeditor.com/increase-virtual-memory/
    を参考にしてください。デフォルトの設定の通り、「ディスクベースを有効にする」がオンになっていれば、ファイルを開くだけで編集が不要な場合、一時ファイルの作成は必要ないはずです。

    よろしくお願いいたします。

    #32072
    yasuji
    参加者

    江村様

    いつもお世話になっております。
    yasujiです。

    (質問1)
    こちらのリンク
    https://jp.emeditor.com/text-editor-features/large-file-support/files-up-to-248gb/
    にある画面図の通り、15.9 TB、17,592,101 行の ASCII ファイルを処理するのに、83,190.860秒かかりました。使用したPCは、確かWindows 10 (64-bit)、Core i9-9900K、64GB RAM、2TB SSDだったと思います。ファイルが保存されているディスクは、Western Digital の 18TB ハード ドライブ (WD181KRYZ) です。

    上記のご回答ありがとうございます。しかし、「16TBファイルを開くのために必要な空き容量」(=開く処理が完了した時点での一時ファイルの合計サイズ)、「Windowsの仮想メモリ設定内容」の情報が不足しておりますので、ご提供をお願いいたします。
    もし、手元に記録がないようでしたら、お手数ですが、再度同様の検証をいただいて、情報提供いただきたいです(PC環境が変わればそれらの情報も)。

    (質問2)
    ファイルのサイズよりも、行数が重要になります。つまり、1行あたり1000文字のファイルよりも、1行あたり10文字のファイルの方が、より多くのメモリを必要とします。ファイルを開くことに失敗する場合は、仮想メモリを増やす必要があります。仮想メモリの増やし方については、こちら
    https://jp.emeditor.com/increase-virtual-memory/
    を参考にしてください。デフォルトの設定の通り、「ディスクベースを有効にする」がオンになっていれば、ファイルを開くだけで編集が不要な場合、一時ファイルの作成は必要ないはずです。

    答えていただきたい回答になっていません。私の(Q2)の質問のみを抜粋して下記に再掲いたします。再度回答をお願いします。

    一般的なデスクトップPCに搭載されている8~32GBのメモリサイズで、1TB~16TBのファイルを開くことができるのか?
    物理メモリをすべて使用するなどでWindowsシステムへの悪影響の有無はあるのか?
    について、情報を開示いただけますでしょうか?
    江村様でしたら、EmEditorの開発者ですので、必要とする物理メモリサイズ、一時ファイルサイズを正確に計算することができると思います。

    よろしくお願いします。

    #32078
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    > 答えていただきたい回答になっていません。

    誠意を持ってお答えしたつもりでしたが、yasuji様のご期待に沿えず申し訳ありません。先に述べたように、64GB RAMのPCで動作確認を行いました。そのため、一般的なデスクトップPCに搭載されている32GBのメモリでも動作する可能性はあります。ただし、さまざまな条件があるため、必ずしも動作するとは限りません。メモリは多いに越したことはありませんし、8GBでは難しいかもしれません。また、これは物理メモリではなく仮想メモリに影響しますので、少ないメモリでも仮想メモリを大きくすることで動作する可能性が高まります。

    よろしくお願いいたします。

    #32080
    yasuji
    参加者

    江村様

    いつもお世話になっております。
    yasujiです。

    ご回答ありがとうございます。
    これでようやく16TBファイルの対応について下記の通り理解ができました。

    1TB~16TBのテキストファイルを開くには、RAMは64GB以上、一時フォルダの空き容量は170GB~2716GB(ファイルサイズの約16%)が少なくとも必要だということが分かりました。
    したがって、1TB未満のテキストファイルについても、同じ傾向があると考えられます。
    8GB~32GBのメモリを搭載したPCは、1TB~16TBのテキストファイルは開くことはできない、1TB未満のテキストファイルはユーザ自身でメモリの空き容量と上記の要件を考慮して開く必要があるということで理解しました。

    なお、「仮想メモリを増やす方法」で、ページングファイルサイズを80000MB(80GB)にするように推奨されております。しかし、通常のページングファイルサイズの設定値は、8GB~16GBは搭載物理メモリと同じサイズ、16GB~32GBは自動割り当て(あえて手動設定する場合は、搭載物理メモリの半分のサイズ)に設定するのが良いとされています(ページングファイルサイズをいくら大きくしてもRAMを増やしたことにはならず、RAMの一部を補う程度のため)。

    HPに記載されている「16 TB までのファイル」の宣伝は、EmEditorのカタログスペックの見栄えを良くするためだけの機能だということが分かりました(8GB~32GBのRAMを搭載した一般的なPCでは開くことができないというご回答のため)。

    #32082
    japelin
    参加者

    なんでそんなに攻撃的な投稿が多いのでしょうか。
    仕様に関する疑問が出ることはわかりますが、正直、ユーザとして適性な範囲のリクエストなのか疑問です

    #32085
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    誠意を持ってお答えしているつもりですが、残念ながら、yasuji様には、私の回答が正確に伝わっていないようですので、誤解を避けるためにもう一度整理してご説明いたします。

    1TB~16TBのテキストファイルを開くには、RAMは64GB以上が必要で、一時フォルダの空き容量はファイルサイズの約16%(170GB~2716GB)が必要だと理解しました。

    RAMが32GB以下だと絶対に開けないわけではなく、64GB以上なら必ず開けるというものでもありません。ファイルサイズに加えて、行数や仮想メモリーの量など、他の要因も影響します。実際には、ファイルサイズは開く速度に影響しますが、開けるかどうかは行数が大きな要因です。また、ファイルを開くだけで編集しない場合は、一時フォルダの空き容量は不要です。

    「仮想メモリを増やす方法」で、ページングファイルサイズを80000MB(80GB)にすることが推奨されています。しかし、通常は8GB~16GBの物理メモリと同じサイズ、16GB~32GBの場合は自動割り当て(手動設定する場合は物理メモリの半分)が良いとされています。

    一般的なアプリでは、「16GB~32GBは自動割り当て(手動設定する場合は物理メモリの半分)」で問題ないかもしれません。しかし、EmEditorで巨大ファイルを扱う場合は、この設定では不十分で、80GB以上の仮想メモリーを推奨します。理由として、EmEditorは巨大ファイルを開く際に大量のヒープメモリーを必要とし、Windowsの仮想メモリーの増加速度が追いつかないため、メモリー不足が発生しやすい状況です。この問題は、Visual C++でCode Analysisを使用してビルドする際にも発生しやすいです。詳細は以下のWebページをご覧ください。

    https://learn.microsoft.com/ja-jp/troubleshoot/windows-client/performance/slow-page-file-growth-memory-allocation-errors

    このように、大きなメモリーを必要とするアプリでは、あらかじめページングファイルの初期値を大きく設定しておく必要があります。私はこれをOSの問題と考えています。

    HPに記載されている「16 TBまでのファイル」の宣伝は、EmEditorのカタログスペックの見栄えを良くするためだけの機能だと理解しました(8GB~32GBのRAMを搭載した一般的なPCでは開けないというご回答のため)。

    宣伝と思われるかもしれませんが、事実を記載しており、誇張ではありません。「メモリの許す限り」との注記もあります。事実を伝えないとユーザーに正しい仕様が伝わりません。EmEditorの仕様や機能をWebサイトに明記することが重要だと考えています。「8GB~32GBのRAMを搭載した一般的なPC」という指摘はその通りですが、EmEditorユーザーの中には64GB以上、さらには256GB以上のRAMを搭載したPCをお持ちの方も多くいらっしゃいます。EmEditorは、ユーザーの要望に応じて巨大ファイルを扱えるように長年改良を重ねてきました。これは決して「カタログスペックの見栄えを良くするためだけの機能」ではなく、多くのユーザーがこの機能を求めてEmEditorを選んでくださっています。

    よろしくお願いいたします。

    #32087
    yasuji
    参加者

    江村様

    いつもお世話になっております。
    yasujiです。

    もし、攻撃的な内容だと感じさせてしまっていたら、この点は申し訳ありません。正確にコンパクトに書くように意識して技術的な話だったため、端的な表現を多く使用して社交辞令的なことなど余計なことは省いて書いておりました。

    「誠意を持ってお答えしている」とのことですが、江村様の過去の対応がありますので、正直なところすぐには信じることはできません。こればかりは、今後とも継続していただくことで徐々に信じれらるようになると思います。

    RAMが32GB以下だと絶対に開けないわけではなく、64GB以上なら必ず開けるというものでもありません。ファイルサイズに加えて、行数や仮想メモリーの量など、他の要因も影響します。実際には、ファイルサイズは開く速度に影響しますが、開けるかどうかは行数が大きな要因です。また、ファイルを開くだけで編集しない場合は、一時フォルダの空き容量は不要です。

    私は、「1TB~16TBのテキストファイルを開く」という操作について、下記の通りに理解しましたが、正しいでしょうか?
    ——
    ユーザのPC環境(メモリサイズ、仮想メモリ設定、その他)によって、開ける最大ファイルサイズが決まるので、明確な説明ができません。
    ただし、一時フォルダの空き容量は、ファイルを開くだけで編集しない場合は 0 [Byte] で問題ありません。
    ——
    「また、ファイルを開くだけで編集しない場合は、一時フォルダの空き容量は不要です。」が、正しいというならば「〔致命的バグ〕メモリ不足でもファイル読込を停止しない」の事象はどのように考えた良いでしょうか?
    この事象は、私が[ディスクベースを有効にする(B)]をOFFに設定したことが悪かったということでしょうか。

    一般的なアプリでは、「16GB~32GBは自動割り当て(手動設定する場合は物理メモリの半分)」で問題ないかもしれません。しかし、EmEditorで巨大ファイルを扱う場合は、この設定では不十分で、80GB以上の仮想メモリーを推奨します。理由として、EmEditorは巨大ファイルを開く際に大量のヒープメモリーを必要とし、Windowsの仮想メモリーの増加速度が追いつかないため、メモリー不足が発生しやすい状況です。この問題は、Visual C++でCode Analysisを使用してビルドする際にも発生しやすいです。詳細は以下のWebページをご覧ください。

    https://learn.microsoft.com/ja-jp/troubleshoot/windows-client/performance/slow-page-file-growth-memory-allocation-errors

    このように、大きなメモリーを必要とするアプリでは、あらかじめページングファイルの初期値を大きく設定しておく必要があります。私はこれをOSの問題と考えています。

    大きなメモリーを使用するアプリケーションには、現時点でOSに問題があると考えられているので、それを軽減または回避するために上記のページングファイルサイズを推奨していると理解しました。

    宣伝と思われるかもしれませんが、事実を記載しており、誇張ではありません。「メモリの許す限り」との注記もあります。事実を伝えないとユーザーに正しい仕様が伝わりません。EmEditorの仕様や機能をWebサイトに明記することが重要だと考えています。「8GB~32GBのRAMを搭載した一般的なPC」という指摘はその通りですが、EmEditorユーザーの中には64GB以上、さらには256GB以上のRAMを搭載したPCをお持ちの方も多くいらっしゃいます。EmEditorは、ユーザーの要望に応じて巨大ファイルを扱えるように長年改良を重ねてきました。これは決して「カタログスペックの見栄えを良くするためだけの機能」ではなく、多くのユーザーがこの機能を求めてEmEditorを選んでくださっています。

    EmEditorのユーザの中には、256GB以上のRAMを搭載したPCをお持ちの方が多くおられて、そういったユーザのニーズで巨大ファイルを扱う機能を改良してたということは理解できました。
    そうであれば、HPの宣伝のページに江村様がご回答いただいた内容を整理して書かれたら、私のような128GBのRAMでは、巨大ファイルを扱うのは難しいと理解できるようになりよりよくなると思います。

    ここまで、江村様の誠意を受けて、正直ベースで私が理解できた内容で返信を書かせていただきました。
    まだ、16TB対応の機能についてわからない点があり、追加で質問させてください。

    (Q1)[カスタマイズ]->[高度]の中にある[最大メモリサイズ(Y)]というのは、EmEditorがファイルを開く際に使用できる最大物理メモリサイズだと考えていましたが、これは私の理解の誤りでしょうか?もし理解の誤りならばどのような設定なのか説明ただければと思います(「〔致命的バグ〕メモリ不足でもファイル読込を停止しない」のケースで[最大メモリサイズ(Y)]でファイル読込停止または、エラー表示のいずれもしなかったため)

    (Q2)下記のPC環境だと仮定して、enwiki-20241020-pages-meta-current.xml(このトピックの最初の投稿)を開くことが可能でしょうか?また、一時フォルダの容量はどのくらいあるとよいのでしょうか?(EmEditorでの操作内容:このファイルを開き、キーワード検索して必要な情報を選択コピー(見つけた情報量によるが1000文字程度)して、新規作成テキストへ貼り付けて、新規テキストを保存して終了する)
    〔PC環境〕
    OS: Windows 10 64bit クリーンインストール、現時点までのWindows Update済み。
    RAM: 32GB
    HDD: 8TB(C Drive only)

    よろしくお願いします。

1 件の投稿を表示中 (合計 8 個)
  • このトピックに返信するにはログインしてください。