IT、ガジェットネタまとめ速報

IT技術やガジェットネタに関するみんなの反応のまとめをチョイスしてお届け!

ガジェット:PC(ソフト)

「テキストの編集」にこだわりが凝縮!定番エディタ「EmEditor」はなぜ他のエディタと違うのか?

投稿日:

1: 田杉山脈 ★ 2020/02/03(月) 12:32:00.38 _USER
20200203-00000010-impress-000-1-view
「テキストの編集」というと、どんなツールを思いだすだろうか?

 「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

引用元: http://egg.5ch.net/test/read.cgi/bizplus/1580700720/

続きを読む

このまとめの続きはコチラ!

-ガジェット:PC(ソフト)

関連記事

ロシア、国産ソフトウェアをプリインストールしていないスマホなどの販売を禁止か

1: 田杉山脈 ★ 2019/11/25(月) 16:29:38.89 _USER
ロシアが、同国製のソフトウェアをプリインストールしていないスマートフォン、コンピューター、スマートテレビの販売を禁止する法律を可決したと報じられている。BBCによると、この法律は2020年7月に施行されるという。…

パソコンにあると便利なフリーソフト

パソコンにあると便利なフリーソフト

1: ヨーロッパヤマネコ(秋田県) [ES] 2020/01/28(火) 19:51:54.27 BE:194767121-PLT(12001)
「Radeon Software Adrenalin 2020 Edition 20.1.4」が登場。「Warcraft III: Reforged」への最適化版 https://www.4gamer.net/games/022/G002212/20200128067/
引用元: http…

広告付き無償セキュリティソフト「KINGSOFT Internet Security 20」公開、動作速度改善でブルーライトカット機能も搭載

1: へっぽこ立て子@エリオット ★ 2019/10/15(火) 15:30:29.93 _USER
 キングソフト株式会社は、総合セキュリティソフト「KINGSOFT Internet Security 20」の提供を開始した。対応OSはWindows 10/8.1。  KINGSOFT Internet Securityシリーズは、ウイルス対策機能や…

Google Play上のアンチウイルスアプリの3分の2はまともに動作していない

1: へっぽこ立て子@エリオット ★ 2019/03/18(月) 13:29:30.07 _USER
Google Play上で配信されているAndroid向けアンチウイルスアプリの3分の2は完全に無駄なものであり、一部のものはスマートフォンをマルウェアに感染させる可能性すらあると新しい研究結果が示していま…

Vim 8.1登場 – Vim内ターミナル機能実現

1: ノチラ ★ 2018/05/23(水) 17:54:21.43 _USER
5月18日(米国時間)、Vimの最新安定版となるVim 8.1の公開が「Vim 8.1 released : vim online」において伝えられた。今回のリリースはマイナーバージョンアップと位置づけられ、バグ修正と機能追加が実施されている。追加さ…