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(ソフト)

関連記事

Microsoft、H.265より高画質な「AV1」コーデックのベータ提供開始

1: 田杉山脈 ★ 2018/11/12(月) 19:11:27.08 _USER
米Microsoftは5日、Microsoftストアにて、Windows 10向けに「AV1 Video Extension」のベータ版提供を開始した。  AV1は、Alliance for Open Mediaが規格する動画コーデックで、同画質において、H.265/HEVC比で30~43%…

セキュリティソフトって有料版必要か?無料ので不便はないしウイルスなんて10年間は見てないけど

セキュリティソフトって有料版必要か?無料ので不便はないしウイルスなんて10年間は見てないけど

1: ダルナビルエタノール(秋田県) [CN] 2020/03/16(月) 18:04:33.56 ● BE:194767121-PLT(13001)
法人向け「ウイルスバスター」や「Apex One」に深刻な脆弱性 – ゼロデイ攻撃も http://www.security-next.com/113196
引用元: http://hayabusa9.5ch.net/test/read.cgi/n…

2018年、日本で最もインストールされたアプリは? 米Sensor Tower調査

1: 田杉山脈 ★ 2019/04/10(水) 20:31:42.71 _USER
米調査会社のSensor Towerは4月9日(米国時間)、日本のスマートフォン向けアプリの2018年インストール数ランキングを発表した。総合ランキング1位は動画共有アプリ「TikTok」で、2018年中に約1200万インストールされたと…

大昔はコーデックをパソコンに一つ一つ入れて動画再生していたよな

1: ベスタ(秋田県) [CH] 2019/12/22(日) 15:39:47.81 BE:194767121-PLT(12001)
メディアプレーヤー「VLC」からサンタクロースの帽子を消す方法 https://news.mynavi.jp/article/20191222-943953/
引用元: http://hayabusa9.5ch.net/test/read.cgi/news/1576996787/

ネット黎明期の人気メールソフト「Eudora」、CHMがソースコード公開

1: ノチラ ★ 2018/05/23(水) 17:52:57.55 _USER
米コンピュータ歴史博物館 (CHM)は5月22日 (現地時間)、インターネット黎明期の代表的なメールクライアント「Eudora」のソースコードを公開した。 Eudoraは、1988年にイリノイ大学アーバナ-シャンペン校のコンピュータサ…