Atom vs Visual Studio Code 速度比較!! Electron系テキストエディタ2大決戦!!

Electron系エディタとして有名な Github製 Atom と、Microsoft製 Visual Studio Code(以下VSCode)。両者とも一定の支持を得ていると思いますが、私は VSCode を使っています。 理由は以前Atom使いがVisual Studio Codeを使ってみたら良い感じだった話 で書きましたが、速度面のメリットが大きいです。 しかし最近では Atom も速くなっているという話を聞きます。実際両者に速度の違いがどの程度あるのか、調べてみました。

環境

  • 15インチ Macbook Pro 2015
  • macOS Sierra 10.12.6
  • Atom 1.21.0 x64
  • Visual Studio Code 1.17.1

お題

5本勝負でいきます。
  1. 起動時間
  2. 文字列置換
  3. Undo
  4. サイズの大きなファイルの読み込み
  5. Markdown のプレビュー

1. 起動時間

まずは起動時間です。空のテキストファイルを指定して、各ソフトが立ち上がり、テキスト入力が可能になるまでの時間を計測しました。 誤差がありそうだったので、5回実施して平均を出しました。

結果

以降、単位は全て秒です
検証内容 Atom VSCode
起動時間 2.84 1.96

Atom は3秒弱、VSCodeは2秒弱。VSCode の方が多少速いくらいの違いのようです。

2. 文字列置換

サンプル文 の「GEEK」の部分を「ギーーク」に置換する処理の時間を計測しました。上記文を1,000個、10,000個、100,000個記載したテキストを用意し、それぞれのテキストで全ての置換にかかる時間を計測しました。

結果

検証内容 Atom VSCode
文字列置換1,000個 0.7 一瞬
文字列置換10,000個 2.99 一瞬
文字列置換100,000個 69.61 一瞬

VSCodeは、一瞬で計測不可でした。VSCode に比べると Atom は時間がかかっていますが、1000個 の置換が1秒以下で完了するのであれば十分に問題ない速度かと思います。むしろVSCodeが速すぎるだけのような。

計測時のキャプチャ

Atom で 10000 個置換

少し待たされる感じです。

VSCode で 10000 個置換

一瞬で終わります。

Atom で 100000 個置換

時間がかかりすぎたので省略

VSCode で 100000 個置換

100000個の置換も一瞬。どうなってんのこれ

3. Undo

2.で文字列を置換後、Cmd + Z で Undo した時の時間を計測しました。

結果

検証内容 Atom VSCode
置換1,000個後Undo 一瞬 一瞬
置換10,000個後Undo 2.03 一瞬
置換100,000個後Undo 19.42 一瞬

当然ながら VSCode は一瞬。Atom も置換よりは時間がかかりませんが、やはり置換個数に比例した感じで時間がかかっている感じです。

4. サイズの大きなファイルの読み込み

大きなファイルのサイズの読み込みに関しては、両者ともあまり得意でない印象がありますが、実際のところどうなのでしょうか。計測してみました。 先程の2. 文字列置換で使ったテキストファイルをさらに連結させて、約30M、60M、120M、240M、480M のテキストファイルを作成してそれぞれのファイルの読み込み時間を計測しました。 計測中に気づいたのですが、Atomと VSCode でテキストファイルの読み込みルーチンが違うようです。
  • Atom => ファイルの先頭を読み込んで画面に表示し、裏で全てのファイルを読み込む処理を継続
  • VSCode => ファイルの内容を全て読み込んでから画面に表示
という処理になっているようでした。 ここでは、ファイル内容を全て読み込む時間を計測したかったので、ファイルを開いてすぐさまファイル最後尾へカーソルを移動させるキーバインドを叩き、移動が完了するまでの時間を計測しました。

結果

検証内容 Atom VSCode
30Mファイル読み込み 5.41 1.86
60Mファイル読み込み 10.58 3.71
120Mファイル読み込み 17.88 4.80
240Mファイル読み込み 応答なし 6.76
480Mファイル読み込み 応答なし 12.15

ここでもVSCodeの方が速いようでした。 VSCode は480Mのテキストファイル開けるのかよ・・・。 しかし、Atom も大きなファイルは苦手だと思ってたのですが、120Mくらいまではどうにか開けました。動作が大分モッサリする感じですが・・・・ Atom で240Mのファイルは、一応開いて先頭は表示されましたが、最後尾へカーソルを移動させようとすると応答なしになり、2分位まっても処理が終わらなかったので中断しました。

計測時のキャプチャ

わりと挙動の差がわかりやすい60Mのファイルを開いた時のキャプチャです。

Atom で 60M のファイル開いて最後尾に移動

Atom はファイル内容が表示されるまでは速いですが、最後尾へ行こうとすると待たされます。

VSCode で 60M のファイル開いて最後尾に移動

VSCode はファイルが開くまでが待たされる感じですね。

5. Markdown のプレビュー

さいごに少し実用的な検証です。両者とも Markdown のプレビュー環境がありますので、Markdown のプレビューにかかる時間を見たいと思います。 サンプルは、このブログ記事の下書きを Markdown で書いたのになります。 適当に連結して長さを稼ぎ、100行、1,000行、10,000行にしたものをプレビューしてみます。

結果

検証内容 Atom VSCode
100行Markdownプレビュー 一瞬 一瞬
1,000行Markdownプレビュー 一瞬 一瞬
10,000行Markdownプレビュー 5.25 1.54

結局10000行くらいまでやらないと差が出ませんでした。一応ここでも VSCode の方が速いようでした。Atom って以前はもっと遅かったイメージでしたが、1000行のMarkdown くらいだと全く問題なくなってたんですね。

計測時のキャプチャ

10000行のMarkdownをプレビューした瞬間のキャプチャです。

Atom で 10000行のMarkdownをプレビュー

さすがに多少待たされます。

VSCode で 10000行のMarkdownをプレビュー

一瞬ひっかかりますが、実用レベルかと思います。

結論

Visual Studio Code の方が、5倍くらい速い
検証内容 Atom VSCode
起動時間 2.84 1.96
文字列置換1,000個 0.7 一瞬
文字列置換10,000個 2.99 一瞬
文字列置換100,000個 69.61 一瞬
置換1,000個後Undo 一瞬 一瞬
置換10,000個後Undo 2.03 一瞬
置換100,000個後Undo 19.42 一瞬
30Mファイル読み込み 5.41 1.86
60Mファイル読み込み 10.58 3.71
120Mファイル読み込み 17.88 4.80
240Mファイル読み込み 応答なし 6.76
480Mファイル読み込み 応答なし 12.15
100行Markdownプレビュー 一瞬 一瞬
1,000行Markdownプレビュー 一瞬 一瞬
10,000行Markdownプレビュー 5.25 1.54

まぁちょっと言いすぎかもしれませんが、気持ち的にはそんな感じです。 ただ、Atomが遅いわけじゃなくて VSCode が速すぎるだけなんじゃないかと思います。 むしろ Atomは思ったより速くなった印象です。 前はもっともっとモッサリしてた気がしたのですが、今回のような異常に大きいファイルなど使わなければ、十分困らないスピードになっているかと思います。

さいごに

VSCode は Atom に比べれば新しいテキストエディタですが、拡張機能も揃ってきています。 ちなみに私も拡張機能を自作していて、操作性を改善しています。 VSCode の拡張 multi-command を公開しました 自作 VSCode 拡張 multi-command がわりと使えそう 自分のやりたいことが Atom でも VSCode でもできるようなら、やはり私は速度面のメリットから VSCode を使います。 Atom ちょっと遅いなーと思うことがあれば、是非 VSCode も試してみてください。
最後まで読んでいただきありがとうございます。 このブログを「いいな」と感じていただけましたら、Twiter にてフォローいただけるとうれしいです。ブログ更新情報などもお届けします。



りゅーた
フリーランスのエンジニアしてます。Android、iOS アプリの開発、対向サーバの開発、C/C++のライブラリ開発が現在のメイン。趣味はテニス・ゲーム・自転車。2児の父

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA