1: 田杉山脈 ★ 2020/02/03(月) 12:32:00.38 _USER
「テキストの編集」というと、どんなツールを思いだすだろうか?
「Windows標準のメモ帳」という人もいるだろうし、Wordなどのオフィスアプリを使う人、Webメールやブログサービスの入力画面でそのまま入力する人など、様々な人がいると思う。そうした中、「テキスト編集」を最も効率よく行うために作られたソフトが「テキストエディタ」だ。
そして、そうしたテキストエディタの中でも、速度の速さや機能の豊富さで多くのユーザーに支持されているソフトの1つが「EmEditor」だ。初期バージョンが1997年公開という歴史あるソフトだが、長い間支持され続けてきただけあって、速度や機能へのこだわりはかなりのもの。
一例を挙げるなら、「マルチスレッドで検索処理を実行する」「512ビットを一括処理できるCPUの拡張命令を活用する」といった最新ハードウェアを活かす高速化が実装されていたり、普通のエディタにはほぼ見られない本格的なCSV編集機能まで用意されていたり……といった具合だ。
「テキストエディタ」というとシンプルなアプリに思われがちだが、実は「こだわりの凝縮」といえるEmEditorの内側を、その開発者である江村豊氏にお伺いした。
「数GBの超大容量ファイルでもスムースな処理を」
圧倒的なスピードの裏側には数多くの工夫が”
――1997年に最初のバージョンである「EmEditor Free v.1.00」をリリースしてから20年以上が経過している「EmEditor」ですが、今でも人気は衰えていません。その開発において、特にこだわっているのはどういった部分でしょうか。
[江村氏]こだわっていることの1つは、大きなファイルを開く部分ですね。例えばビッグデータを扱う、あるいはサーバーのログファイルをチェックするなどといった用途が挙げられるでしょう。
こうしたファイルは数十〜百GB超になることもあり、そのすべての内容をメモリに展開することができません。
そのため、ファイルから直接読み込むことになりますが、ファイルを開くタイミングでは行数をカウントするためにすべて読み込む必要があります。そのスピードをできるだけ速くするための工夫をEmEditorには盛り込んでいます。
具体的な処理は改行の数のカウントですが、改行コードには「CR」と「LF」、そして「CR+LF」の3種類があります。それを考慮しつつ、改行をカウントする処理を高速に行えるように工夫しています。
ちなみに、EmEditorの開発に使っているC++には文字列を操作するためのさまざまな標準ライブラリがあり、それを使えば簡単に行数をカウントできます。ただ、それを使っていては僕が理想とするパフォーマンスが得られません。ですので、EmEditorでは、改行コードを検索するための独自ルーチンを使っています。
CPUの拡張命令やマルチスレッドを使って高速化!「80倍」も……
C++の「テンプレート」も活用した高速化も
――現在のEmEditorの64ビット版では、SSE2とAVX-2、AVX-512命令セットのそれぞれで別ビルドを提供していますが、そうした処理の最適化にハードウェアの機能も利用されているのでしょうか。
[江村氏]そうですね。たとえば検索処理の例ですが、従来は32ビット、あるいは64ビット単位でしか検索することができませんでした。
しかしCPUの拡張命令であるSIMD(single instruction, multiple data)を使えば、SSE2なら128ビット、AVX-2で256ビット、AVX-512では512ビット単位で検索することが可能になり、従来に比べてかなりの高速化を図ることができます。
このように、EmEditorではハードウェアが備える機能も積極的に活用し、高速化を図っています。
同様にマルチコアCPUのメリットも活用しています。従来はシングルスレッドで、1行目から順番に検索するしかなかったわけです。しかし現在はマルチスレッドになっていて、複数行をまとめて検索できるようになりました。
例えば1つのスレッドは1行目と11行目、21行目、2つ目のスレッドは2行目、12行目、22行目などといった形です。さらにSIMDも組み合わせることで極めて高速になります。
また、数億行もあるファイルを扱う場合は、仮に10スレッドがあっても数千万回ループしなければならないので、ループはできるだけ短く、かつループの中に分岐点を作らないようにしています。
以下ソース
https://internet.watch.impress.co.jp/docs/interview/1231545.html
3: 名刺は切らしておりまして 2020/02/03(月) 12:33:42.98
テキストエディタはxyzzy一択だろ。
5: 名刺は切らしておりまして 2020/02/03(月) 12:35:14.69
サクラエディタ
6: 名刺は切らしておりまして 2020/02/03(月) 12:36:07.89
vzこそ最強だった
8: 名刺は切らしておりまして 2020/02/03(月) 12:36:48.38
使ってたけどイマイチだった。
14: 名刺は切らしておりまして 2020/02/03(月) 12:42:10.94
面倒いから手書きでええ
15: 名刺は切らしておりまして 2020/02/03(月) 12:42:21.10
秀丸じゃダメなのか?
51: 名刺は切らしておりまして 2020/02/03(月) 13:15:26.33
>>15
unicodeの問題
unicodeの問題
18: 名刺は切らしておりまして 2020/02/03(月) 12:44:02.07
プログラミング用途なら最近はatmばっかりオススメされるような
20: 名刺は切らしておりまして 2020/02/03(月) 12:44:28.41
>>18
atom
atom
19: 名刺は切らしておりまして 2020/02/03(月) 12:44:13.18
EmEditorって作者に妙に悪い噂たってたのはなんだったんだろう
32: 名刺は切らしておりまして 2020/02/03(月) 12:55:13.12
>>19
第三者が作ってたプラグインの機能を有料化して本体に組み込んだとか、そのあたりのネガキャンくらってるだけでは
第三者が作ってたプラグインの機能を有料化して本体に組み込んだとか、そのあたりのネガキャンくらってるだけでは
22: 名刺は切らしておりまして 2020/02/03(月) 12:46:50.42
秀〇=4000円でいい。
おじさんだから移る気は全くない。
おじさんだから移る気は全くない。
33: 名刺は切らしておりまして 2020/02/03(月) 12:55:53.26
>>22
こらこらww
こらこらww
24: 名刺は切らしておりまして 2020/02/03(月) 12:48:16.87
Vzだろ
あ、EZのほうか
あ、EZのほうか
59: 名刺は切らしておりまして 2020/02/03(月) 13:24:32.64
>>24
Wzなんだよなぁ
98ユーザーじゃなかったから
Wzなんだよなぁ
98ユーザーじゃなかったから
68: 名刺は切らしておりまして 2020/02/03(月) 13:36:06.58
>>59
VZはMS-DOS、WZはWinCEで使っていたな。
今はサクラエディタ。普通の文章はMS-Wordだから、エディタにカネを出したくない。
VZはMS-DOS、WZはWinCEで使っていたな。
今はサクラエディタ。普通の文章はMS-Wordだから、エディタにカネを出したくない。
27: 名刺は切らしておりまして 2020/02/03(月) 12:50:55.53
Unicod使えるからこれ1択
31: 名刺は切らしておりまして 2020/02/03(月) 12:53:57.57
株式会社まつもとのJeditがいちばん好きだったなー
YooエディットとJエディットでだいたい事足りた
YooエディットとJエディットでだいたい事足りた
34: 名刺は切らしておりまして 2020/02/03(月) 12:56:11.17
MS-DOS時代はVz
Windows時代は秀丸
最近はVSCode
Unix時代はvi
Linux以降はvim
Windows時代は秀丸
最近はVSCode
Unix時代はvi
Linux以降はvim
38: 名刺は切らしておりまして 2020/02/03(月) 12:58:27.40
4000YEN
45: ◆ElliottbHk 2020/02/03(月) 13:06:32.07
MIFESもどこに行っちゃったのかねー。
48: 名刺は切らしておりまして 2020/02/03(月) 13:13:00.06
( ´ー`)y-~~ Mifes
52: 名刺は切らしておりまして 2020/02/03(月) 13:16:53.52
Emeditor95からのユーザ
秀丸とEmeditor95で、確かEmeditor95の方が安かったから
シェアウェア登録した覚えがある
秀丸とEmeditor95で、確かEmeditor95の方が安かったから
シェアウェア登録した覚えがある
60: 名刺は切らしておりまして 2020/02/03(月) 13:24:40.33
秀丸、gedit、vim
emacs使いは自慢気味だからキモい
62: 名刺は切らしておりまして 2020/02/03(月) 13:25:32.52
98〜XP時代辺りまでは確かに使ってたなEmEditor
構文ハイライトとかオートインデントとか便利だったわ
ただVista手前頃からVim使い出したし
Windows10が出る前後にMacへ移行して、それ以来ずっとVSCode、たまにVim
構文ハイライトとかオートインデントとか便利だったわ
ただVista手前頃からVim使い出したし
Windows10が出る前後にMacへ移行して、それ以来ずっとVSCode、たまにVim
69: 名刺は切らしておりまして 2020/02/03(月) 13:36:14.46
普通にvimだなァ
キーボードから手を離さずに打てる
キーボードから手を離さずに打てる
71: 名刺は切らしておりまして 2020/02/03(月) 13:37:33.70
Windowsのメモ帳が一番シンプルで
変な機能ついてなくて好きなんだけど
強制終了したりパソコンがフリーズしたときのために自動バックアップさえついてればなあ…と思う
変な機能ついてなくて好きなんだけど
強制終了したりパソコンがフリーズしたときのために自動バックアップさえついてればなあ…と思う
75: 名刺は切らしておりまして 2020/02/03(月) 13:40:17.70
>開発者である江村豊氏に
江村の23年
江村の23年
83: 名刺は切らしておりまして 2020/02/03(月) 14:06:32.83
テキストエディタがサブスクなのか。
金持ってるなー
金持ってるなー
89: 名刺は切らしておりまして 2020/02/03(月) 14:26:07.82
ずいぶん昔に使ったことがあるけど、まだあったんだ
98: 名刺は切らしておりまして 2020/02/03(月) 15:06:58.81
俺はmifesだな使い慣れてる
103: 名刺は切らしておりまして 2020/02/03(月) 15:14:57.19
チラシの裏
カットバッファが複数有って便利
マクロなども長年使ってる
DOS以来だしw