- 2018/06/26 タイトルに
2017年
を入れました。
近いうちに2018年版を書こうと思います。
やってみたこと
テキストエディタの性能で、意外と重要なのが「GB級のでかいファイルを扱えるか」です。
エンジニアであればログファイルだとかDBのダンプだとかでファイルサイズの大きなテキストを扱った経験はけっこうあるかと思います。
最近のWindowsのメジャーなエディタはどんなもんなのか、夏休みの自由研究的にやってみました。
環境もろもろ
マシン
- Windows 10 Pro 64bit
- RYZEN 5 1600
- DDR4-2400 16GB (うち2GBはRAMディスク化)
- PX-256M6V (システム)
- WD30EZRZ (データ)
- ページングファイルはHDD上へシステム管理サイズに設定(2937MB)
エディタ
- Atom 1.18.0
- Brackets 1.9
- EmEditor Professional 17.0.1
- Sublime Text build 3126
- TeraPad 1.09
- Visual Studio Code 1.14.2
- サクラエディタ 2.3.2.0
- 秀丸エディタ 8.73
実験素材
多少は圧縮がききそうでランダムな内容のテキストファイルを用意しました。
1行1023文字でこんな感じです。
サイズは100MB, 512MB, 1GB, 4GB, 8GB, 16GBのものを作りました。
で、どうだったの
Atom
大きいファイルを開こうとすると「しばらく反応しなくなるよ!」という警告が出ます。
100MBは全般的に数秒待たされることはありますがまあ一通り作業可能。
そして512MB以上のファイルは Uncaught RangeError: Invalid string length
となって開けず。このへんで報告されているのでそのうち良くなるかもしれません。
余談ですが、1行がとても長いと折り返しをOFFにしていても一定の文字数で折り返されてしまうっぽい。ちょっと困りますね。
Brackets
大きなファイルを開こうとすると 16MBを超えるサイズのファイルはBracketsで開くことはできません
と言われてジ・エンド。
無反応になったりクラッシュするよりはマシでしょうか。
EmEditor
ファイルオープンは4GB以上だと時間がかかりますが、ファイル先頭のほうはすぐに表示されます。
オープン中でもカーソル操作、検索は快適。
巨大ファイルコントローラーという機能があり、ファイルの一部だけ開けるのが便利。
読み込み中はステータスバーにロード状況が表示され、ファイルオープンにかかる時間は1秒あたり20MB弱くらいです。
結局今回16GBファイル全体を開けたのはEm君だけでした。
Sublime Text
1GBまでは良かったんですが4GB開こうとしたらメモリ警告が出て強制終了でした。なぜかChromeとFireFoxも道連れでクラッシュ。
ファイルオープンにかかる時間は1秒あたり10MB強くらい。
ファイルが開ければあとは快適。
TeraPad
1GB開こうとしたら少し待ったのちメモリ不足だという警告が出て開けませんでした。
512MBまでは問題なし。
Visual Studio Code
100MBでも このファイルはバイナリか、非常に大きいか、またはサポートされていないテキストエンコードを使用しているため、エディターに表示されません
となってしまいました。無念。
無反応になったりクラッシュするよりはマシでしょうか。
サクラエディタ
1GBまでは開けましたが4GB以上だと ほかのアプリケーションで使用されている可能性があります
というエラーで開けず。
ファイルオープンにかかる時間は1秒あたり10MBくらいで、開いた後の各種操作は快適でした。
ちなみに 開こうとしたファイルが大きい場合に警告する
というオプション設定があります。
秀丸エディタ
最大限ファイルを開くには 編集可能な最大行数
オプションの設定変更が必要です。初期設定は100万行で最大1000万行まで設定可能。
1GB以上だと開く前にファイルの一部だけ開くかどうかのダイアログが出てきます。16GBだとおよそ1600万行あってファイル全体は開けませんでしたが、9GB分くらいは開けました。
読み込み中はウィンドウタイトル部分にロード状況が表示されるのが親切。
ファイルオープンにかかる時間は1秒あたり20MBくらいで、開いた後の各種操作は快適でした。
まとめ
シェアウェアだけあってEmEditorと秀丸は優秀ですね。秀丸は最大行数制限があるのでEmのほうが若干上かな。
無料ものならサクラが比較的よかったでしょうか。
Atom, Brackets, VSCode 等の最近出てきたエディタはテキスト編集よりコーディングに重きを置いていることもあって大ファイルは対応が悪いようです。
他にもいいエディタご存知の方がいたらぜひ教えてください。