この記事は開発中の製品の検証記録です。UwEditor Pro はまだ発売していません(発売時期未定)。
巨大なテキストファイルを扱うとき、「ファイルを開ける」というだけでは十分ではありません。
実際の作業では、文字列を検索し、一括置換し、手作業で修正し、いったん作業を終了して、翌日また開き直します。
Open
→ 検索
→ 一括置換
→ 手作業で修正
→ Close
× 必要な回数
→ 最後に完成ファイルを作成
今回は、MacのARM環境で動作する次の3製品を比較しました。
- 010 Editor
- UltraEdit for Mac
- 開発中の UwEditor Pro(巨大ファイルを、書き換えずに編集)(以下UEP)
比較した操作は共通です。
- ファイルを開く
- 「東京」を全文検索
- 「東京」を「Tokyo」へ全置換
- 作業途中で終了する
- 次回、編集状態を開き直す
- 最後に通常のテキストを作成する
先に結論
初回オープンと通常テキストの作成は、既存製品も十分に高速でした。
大きな差が出たのは、検索、全置換、そして作業を途中で終了・再開するときです。
| 比較項目 | 010 Editor 対 UEP | UltraEdit 対 UEP |
|---|---|---|
| 初回オープン | ほぼ互角 | ほぼ互角 |
| 全文検索 | UEPが約5.2倍高速 | UEPが約5.6倍高速 |
| 全置換 | UEPが約4.5倍高速 | UEPが約10.8倍高速 |
| 最終テキスト作成 | UEPが約13倍高速 | ほぼ互角 |
| 作業途中の終了 | 010は2分40秒、UEPは0秒 | UltraEditは4秒、UEPは0秒 |
| 次回の再開 | 010は12.3秒、UEPはほぼ0秒 | UltraEditは6秒、UEPはほぼ0秒 |
ただし、010 EditorとUltraEditでは使用したファイルサイズが異なります。このため、両者の秒数を直接比べるものではありません。 それぞれ同じファイルをUEPでも処理し、対になる条件で比較しています。
なぜファイルサイズが異なるのか
当初は、約50GBの同じファイルで3製品を比較する予定でした。
しかし、010 Editorでは50GBの処理が遅く、実用的な時間で一連のテストを完了できませんでした。このため、010 Editorとの比較では 10.19GB のファイルを使用しました。
UltraEditでは、5GB以上のファイルでは処理が遅くなる旨のメッセージが表示されました。そのため、UltraEditとの比較では 3.07GB のファイルを使用しました。
これは製品間の絶対的な順位を決めるベンチマークではありません。
「各製品が現実的に操作できる巨大ファイルを、実際の編集手順で処理したらどうなるか」を確認したものです。
010 Editorとの比較
テストファイル
ファイル名:japan-dv-010-ab
容量:10.19GB
結果
| 操作 | 010 Editor | UwEditor Pro | 比較 |
|---|---|---|---|
| 初回オープン | 11.0秒 | 10.9秒 | ほぼ互角 |
| 「東京」の全文検索 | 11.5秒 | 2.2秒 | UEPが約5.2倍高速 |
| 「東京」→「Tokyo」の全置換 | 16.3秒 | 3.6秒 | UEPが約4.5倍高速 |
| 作業途中で終了 | 保存に2分40秒 | 0秒 | UEPは待ち時間なし |
最終 .uwvz 作成 |
― | 5.8秒 | UEP標準形式 |
| 最終テキスト作成 | 2分40秒 | 12.3秒 | UEPが約13倍高速 |
| 次回の開き直し | 12.3秒 | ほぼ0秒 | UEPは即時再開 |
初回オープンはほぼ同じでした。010 Editorも10GBのファイルを約11秒で開いており、十分高速です。
一方、検索と全置換ではUEPが4.5〜5.2倍高速でした。
さらに大きな差が出たのが保存です。010 Editorで通常のテキストとして保存するには2分40秒かかりました。UEPでは、通常テキストの作成が12.3秒、圧縮形式の .uwvz なら5.8秒でした。
設定ミスの可能性について。 この2分40秒は、こちらの設定不足による数字である可能性があります。010 Editorには書き出しや処理を高速化する設定があるはずで、そこを詰め切れていません。ご存じの方がいたら教えてください。改めて測り直し、結果が変わればこの記事を追記で訂正します。
1回で編集を完了した場合
通常テキストの作成まで含めると、次のようになります。
010 Editor
11.0 + 11.5 + 16.3 + 160
= 198.8秒(約3分19秒)
UwEditor Pro
10.9 + 2.2 + 3.6 + 12.3
= 29.0秒
全工程では、UEPが約6.9倍高速でした。
保存後の開き直しまで含めると、010 Editorは211.1秒、UEPは約29秒となり、差は約7.3倍になります。
UltraEditとの比較
テストファイル
ファイル名:japan-dv-UE3-af
容量:3.07GB
結果
| 操作 | UltraEdit | UwEditor Pro | 比較 |
|---|---|---|---|
| 初回オープン | 4.4秒 | 3.54秒 | ほぼ互角 |
| 「東京」の全文検索 | 5.3秒 | 0.94秒 | UEPが約5.6倍高速 |
| 「東京」→「Tokyo」の全置換 | 14.1秒 | 1.31秒 | UEPが約10.8倍高速 |
| 作業途中で終了 | 保存に4秒 | 0秒 | UEPは待ち時間なし |
| 最終テキスト作成 | 4秒 | 3.5秒 | ほぼ互角 |
| 次回の開き直し | 6秒 | ほぼ0秒 | UEPは即時再開 |
UltraEditも初回オープンと保存は高速です。 特に通常テキストの保存は4秒で、UEPの3.5秒と大きな差はありませんでした。
一方、検索は約5.6倍、全置換は約10.8倍の差になりました。
こちらも設定ミスの可能性があります。 UltraEditは5GBを超えると遅くなる旨の警告を表示しました。裏を返せば、大きなファイル向けの設定やモードが用意されていて、そこを適切に設定すれば数字が変わるかもしれません。 ご存じの方がいたら教えてください。再調査します。
1回で編集を完了した場合
UltraEdit
4.4 + 5.3 + 14.1 + 4.0
= 27.8秒
UwEditor Pro
3.54 + 0.94 + 1.31 + 3.5
= 9.29秒
全工程では、UEPが約3倍高速でした。
保存後の開き直しまで含めると、UltraEditは33.8秒、UEPは約9.29秒となり、差は約3.6倍になります。
「途中終了0秒」とは何か
UEPの「0秒」は、完成テキストの作成時間ではありません。
UEPは元データを直接書き換えず、編集内容を差分として記録します。作業内容は編集中から差分ファイルへ残るため、途中で作業を終了するときに、元の巨大ファイル全体を書き直す必要がありません。
そのため、想定する運用は次のようになります。
1日目
Open → 検索・置換・修正 → Close(0秒)
2日目
Open(ほぼ0秒)→ 修正 → Close(0秒)
3日目
Open(ほぼ0秒)→ 修正 → Close(0秒)
最終日
完成した通常テキスト、または .uwvz を作成
途中のCloseは、保存せずに作業内容を捨てるという意味ではありません。編集差分がすでに記録されているため、保存待ちなしで終了できるという意味です。
最後に必要な成果物を作るときだけ、ファイル全体を出力します。
作業を繰り返すほど差が広がる
010 Editorでは、作業を中断するたびに2分40秒の保存が必要です。次回の再開にはさらに12.3秒かかります。つまり、1回の中断と再開に約172.3秒かかります。
UltraEditでは、途中保存4秒と開き直し6秒を合わせて約10秒です。
UEPでは、途中終了と再開がほぼ0秒です。
| 1回の中断・再開 | 待ち時間 | テストファイル |
|---|---|---|
| 010 Editor | 約172.3秒 | 10.19GB |
| UltraEdit | 約10秒 | 3.07GB |
| UwEditor Pro | ほぼ0秒 | 上記いずれも |
※ファイルサイズが異なるため、010 Editor と UltraEdit の秒数を直接比べることはできません。
巨大ファイルの編集が一度で終わるなら、最終保存時間だけを見ればよいでしょう。
しかし、数日かけて何度も開き、検索し、修正し、作業を中断する場合には、途中保存と再開の時間が積み重なります。UEPが狙っているのは、この繰り返し作業です。
正直に書いておくこと
今回の結果は、一般的なテキストエディタとしての総合評価ではありません。
010 Editor は、巨大なテキストだけでなく、バイナリデータ、ディスク、各種ファイル形式を解析できる強力なエディタです。
UltraEdit も、プログラム編集、正規表現、マクロ、プロジェクト管理など、長年蓄積された豊富な機能を持っています。
編集機能の種類や完成度では、開発中のUEPより既存製品が上です。
UEPは「メモリに収まらない巨大ファイルを、何度も中断・再開しながら修正する」という狭い用途に特化しています。
また、次の点にも注意が必要です。
- 010 EditorとUltraEditではテストファイルのサイズが異なる
- 各製品とUEPの比較には、それぞれ同じファイルを使用した
- テスト結果は使用するMac、RAM、SSD、OSキャッシュの状態で変化する
- 正規表現、文字コード、ヒット件数によって結果は変化する
- 今回の検索は「東京」、置換は「東京」から「Tokyo」への通常文字列置換
- 010 Editor・UltraEdit とも、高速化のための設定を詰め切れていない可能性がある(情報があれば再調査します)
- UEPは開発中であり、まだ発売していない
まとめ
010 Editor、UltraEdit、UEPはいずれも、数GB級のファイルを開いて編集できました。
初回オープンについては、3製品とも実用的な速度でした。UltraEditの最終テキスト保存もUEPとほぼ互角です。
一方、UEPは検索と全置換で一貫して高速でした。
そして最大の違いは、作業途中の終了と再開です。
010 Editor
巨大ファイル全体を保存 → 次回、再び開く
UltraEdit
高速に保存 → 次回、再び開く
UwEditor Pro
編集差分を維持したまま終了 → 次回、即時再開
巨大ファイル編集では、「一度の処理が何秒速いか」だけでなく、「作業を安全に何回中断できるか」が実用性を左右します。
UEPは、巨大ファイルを一度で編集し終えるためのエディタではありません。
巨大すぎて一度では終わらない作業を、何日にも分けて続けるためのエディタです。
関連記事
いま巨大ファイルを「見る」だけでよければ、UwView Pro — Huge Files, No Waiting が現行の製品です。
