【開発中】48GBのファイルを「編集して、途中で保存する」まで — EmEditorとUwEditor Proを同じWindowsノートで比較

比較

この記事は開発中の製品の検証記録です。UwEditor Pro はまだ発売していません(発売時期未定)。

前回は「48GBのファイルを開いて検索するまで」を比べました。今回はその先——編集して、途中で保存するまでです。

同じPC・同じ48GBファイル・同じ検索語で、比較の条件を揃えてあります。

比較相手は前回と同じ EmEditor Professional。巨大ファイルを扱えるWindowsのエディタとして、実質的にここが基準になります。前回の記事でも書いたとおり、編集機能の豊富さではEmEditorが圧倒的です。その前提は変わっていません。

変わったのは、UwView 側に編集が乗ったことです。

先に結論

操作 EmEditor(2回の平均) UwEditor Pro
ファイルを開く 103.6 秒(116.8 / 90.4) 107.1 秒 互角(むしろEmEditorがわずかに速い)
「東京」を全文検索(94,979行がヒット) 194.7 秒(245.3 / 144) 23.9 秒 約8倍
「東京」→「Tokyo」を全置換 210.5 秒(257 / 164) 35.9 秒 約6倍
途中保存(作業を中断するための保存) 31 分(1,860秒) 0 秒(押した瞬間)
最終的な書き出し(1つのファイルにする) 同じ操作をもう一度・31 分 1 分33秒 約20倍

EmEditor の3項目は2回計測の平均です。個別値も括弧内に併記しました(ばらつきが小さくないため)。

開くのは互角——むしろEmEditorのほうがわずかに速い。差がつくのは、その後の全部です。

この比較が成り立つ条件 — 10GB程度なら、EmEditor のほうが速い

先に、この記事の射程をはっきりさせておきます。

今回のテストPCはメモリ16GBです。48GBのファイルは、メモリに入りません。 上の数字は、すべてその条件で出たものです。

10GB程度——つまりメモリに収まるサイズでは、検索も置換も EmEditor のほうが格段に速く動きます。
メモリを多く積んだPCなら、EmEditor はかなり巨大なファイルでも高速です。

EmEditor は高機能で、普通の「巨大ファイル」に対しては十二分な性能を持つ、良いソフトです。
マクロ、CSV編集、正規表現の細かな制御、プラグイン——編集機能の豊富さでは比べるまでもありません。

UwEditor Pro が有利になるのは、メモリに入らないサイズ——それより先の領域だけです。
そこだけのために作った道具であって、エディタとしての優劣の話ではありません。

「10GBのログを毎日開く」なら EmEditor をおすすめします。
この記事が意味を持つのは、扱うファイルが搭載メモリを超えたときです。

検証環境

項目 内容
PC HP Spectre x360(前回と同一機)
OS Windows 11 Home(x64)
CPU Intel Core i7-1165G7 2.80GHz(4コア8スレッド)
メモリ 16GB
ストレージ 内蔵SSD
テストデータ OpenStreetMap 日本
ファイル容量 約48GB(前回と同一ファイル)
行数 約8.92億行
文字コード UTF-8
検索文字列 「東京」
EmEditor Professional 64-bit v26.2.5(前回と同じ)
UwEditor Pro v1.3.3(開発版)

両製品とも同じPC・同じSSD・同じファイルです。

1. 開く — ここは互角

EmEditor 103.6秒(116.8秒と90.4秒の平均)/ UwEditor Pro 107.1秒。

この項目だけは、EmEditor のほうがわずかに速いという結果でした。

前回の記事にも書いたとおり、初回オープンで劇的な差は出ません。どちらも48GBを物理的に読む必要があるからです。ここで「圧倒的に速い」と書くつもりはありません。

差が出るのは2回目以降で、UwEditor Pro は圧縮索引(.uwvz)を保存するので、次に開くときは瞬時です。ただし今回の主題はそこではありません。

2. 検索 — 245.3秒 が 23.9秒 に

「東京」の全文検索で 94,979行がヒットします。この件数は両製品で一致しました(同じ問いに、同じ答えを返しているということです)。

時間
EmEditor(1回目 / 2回目) 245.3 秒 / 144 秒 → 平均 194.7 秒
UwEditor Pro 23.9 秒

約8倍。 3分待つか、24秒待つか。1回なら誤差ですが、調査は検索を何十回も繰り返す作業です。

この差には、並列度の違いが含まれています

数字の意味を正確にしておきます。この8倍は、アルゴリズムだけの差ではありません。

EmEditor 側はスレッド数を 8 に設定して実行しました。ただし実際には 1スレッドで動作していたように見えました
メモリ量とファイルサイズを見て、自動的にそう判断したのだと思われます。UwEditor Pro は8スレッドで動いています。

つまりこの差は、同じ条件下で実際に使われた並列度の違いを含んでいます。
メモリに余裕のある環境なら、EmEditor 側も並列で動き、差は縮むはずです。

これは EmEditor の欠陥ではなく、16GBのメモリで48GBを扱うという条件が課した制約です。
そしてこの記事は、まさにその条件についての記事です。

EmEditor 側は1回目と2回目で 245.3秒 → 144秒 と大きく縮んでいます(OSのファイルキャッシュが効いたと思われます)。
速いほうの144秒と比べても、UwEditor Pro は6倍です。

理由は前回と同じで、UwEditor Pro が読んでいるのは生の48GBではなく圧縮索引だからです。読むバイト数が少なければ、それだけ速く終わります。

3. 置換 — 257秒 が 35.9秒 に

「東京」を「Tokyo」に全置換します。

時間
EmEditor(1回目 / 2回目) 257 秒 / 164 秒 → 平均 210.5 秒
UwEditor Pro 35.9 秒

約6倍。 速いほうの164秒と比べても4.6倍です。

4. 途中保存 — 「作業を中断できるか」という問題

ここが、この記事でいちばん実務に効く差です。

巨大ファイルの編集は、一発では終わりません。置換して、確認して、また直して——その途中で何度も保存したい
昼休みに入るとき、別の作業に移るとき、そして単純に「ここまでを失いたくない」とき。

普通のエディタは、その1回の保存でファイル全体を書き直します。 48GBの1箇所を直しただけでも、48GBを書き出す。
今回の計測では、EmEditor の保存に 31分かかりました(0:17 開始 → 0:48 終了)。

これは「保存が遅い」という話ではありません。途中保存が事実上できない=作業を中断できないということです。
31分かかる保存を、作業の区切りごとに挟むことはできません。
3回保存すれば、それだけで1時間半が保存に消えます。
48GBの編集を、一度も保存せずに最後までやり切るしかない。途中で落ちれば、全部消えます。

UwEditor Pro の途中保存は、実測 0秒(押した瞬間に完了)です。

理由は非破壊オーバーレイ編集にあります。.uwvz(圧縮索引)は不変のまま、
編集の差分だけを .ewvz に積んでいく。書き出すのは差分だけなので、元ファイルの大きさに関係なく一瞬で終わります。
別の検証では、10.09GBのファイルに21,994箇所の変更を加えて、
差分ファイルは 3.7MB(元の0.037%)でした。

しかも .ewvz は編集中つねにディスクにあります。保存を押す前に落ちても、編集は残っています。

ここでいう「0秒」は、作業途中の保存のことです

編集結果を1つのファイルとして書き出す——.uwvz.ewvz から新しい .uwvz を再構成する処理は別で、
こちらは当然サイズなりの時間がかかります。次の章がそれです。

5. 最終的な書き出し — 31分 が 1分33秒 に

作業が終わったら、編集結果を1つのファイルにまとめます。UwEditor Pro は
.uwvz(不変の索引)と .ewvz(編集差分)から、新しい .uwvz を1パスで再構成します。

時間
EmEditor(ファイル全体の書き直し) 1,860 秒(31分
UwEditor Pro(.uwvz の再構成) 93 秒(1分33秒)

約20倍。

EmEditor 側にとっては、これは「途中保存」と同じ処理です。途中も最終も、毎回48GBを書き直す
UwEditor Pro は途中を0秒で済ませたうえで、最終の1回だけ1分33秒を払います。

速い理由は単純で、書き出しているのが圧縮された索引だからです。生の48GBではありません。

なお、前回・前々回の記事で「最終書き出しの時間は別途計測して出します」と書きました。これがその数字です。

2日続けて直すと、どうなるか

巨大ファイルの編集は、一日で終わりません。翌日また同じファイルを開くところまで含めて見ます。

1日目 — 開いて、検索・置換して、保存する

EmEditor UwEditor Pro
開く 103.6 秒 107.1 秒
検索・置換 405.2 秒 59.8 秒
保存(作業を中断するための) 1,860 秒(31分) 0 秒
合計 約 39.5 分 約 2.8 分

約14倍。 UwEditor Pro 側に「保存」の時間がありません。差分を書くだけだからです。

2日目 — 同じファイルを開き直して、続きを直し、書き出す

EmEditor UwEditor Pro
開き直す 103.6 秒 計測不能(ミリ秒単位)
検索・置換 405.2 秒 59.8 秒
1つのファイルに書き出す 1,860 秒(31分) 93 秒(1分33秒)
合計 約 39.5 分 約 2.5 分

EmEditor は、2日目もまったく同じ39.5分を払います。 48GBをもう一度読み直し、もう一度書き直すからです。

UwEditor Pro の2日目は「開く」が消えます。 索引(.uwvz)が保存されているので、開き直しはストップウォッチでは測れませんでした(ミリ秒単位)。
代わりに、最後の書き出しで1分33秒を1回だけ払います。

この2枚の表が示していること

  • 1日目に効くのは「保存」——差分だけを書くので0秒
  • 2日目に効くのは「開く」——索引を保存してあるので、読み直しがない

設計は2つあって、効く場面が違います。 そして EmEditor 側は、どちらの日も同じ39.5分です。
3日目、4日目と続けば、差はそのぶん開いていきます。

※繰り返しますが、これはメモリ16GBのPCで48GBを扱った場合の数字です。
 メモリに収まるサイズなら、EmEditor のほうが速く終わります。

正直に書いておくこと

  • UwEditor Pro は開発中で、まだ発売していません。 発売時期は未定です
  • 編集機能の豊富さではEmEditorが上です。 マクロ、CSV編集、正規表現の細かな制御、プラグイン——
    UwEditor Pro は「巨大ファイルを壊さずに直す」ことに絞った道具で、EmEditorの代わりになるものではありません
  • 10GB程度(メモリに収まるサイズ)では、EmEditor のほうが検索も置換も格段に速いです。
    今回の結果は「メモリ16GBのPCで48GBを扱った場合」のものです。この条件を外すと、順位は入れ替わります
  • 検索の差には並列度の違いが含まれます。 EmEditor はスレッド数8を指定しても1スレッドで動作していたように見えました
    (メモリとファイルサイズによる自動判断と思われます)。UwEditor Pro は8スレッドです。
    メモリに余裕があれば、この差は縮むはずです
  • EmEditor 側は2回計測し、平均と個別値の両方を出しました。1回目と2回目で最大1.7倍の差が出ています
    (OSのファイルキャッシュの影響と思われます)。速いほうの値と比べても差は残ります
  • UwEditor Pro 側は各1回です
  • EmEditor の保存時間(31分)は、開始時刻と完了時刻の差から算出しました
  • 2日目の数値のうち、「開き直す」以外は1日目と同じ実測値を再掲しています(同じ操作のため)。
    UwEditor Pro の開き直しは速すぎて計測できませんでした(ミリ秒単位)
  • 今回の比較は「巨大ファイルを直して保存する」という一点についてのものです。 日常の編集作業全般の話ではありません
  • ファイルを開く速度はほぼ互角で、ここに優位はありません

UwView Pro との関係

UwEditor Pro は UwView Pro を包含する上位版です。いま巨大ファイルを「見る」だけでよければ、
UwView Pro — Huge Files, No Waiting が現行の製品です。


タイトルとURLをコピーしました