【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

パフォーマンス改善で更に使いやすく! VisualStudioCode1.19リリース!

こんにちは。
開発チームのワイルド担当、まんだいです。

人生初の書き仕事を終え、ホッとしたのもつかの間、Visual Studio Code(以下、VSCode)のバージョンアップがとうの昔に来ているじゃないか!
遅すぎるとは思いつつ、今回のバージョンアップを見てみましょう!

いつも通り網羅はしていませんが、開発者目線で知っていれば得しそうな機能に絞ってお届けしています。

 

派手さがない、パフォーマンスの話

1.19のバージョンアップでは目玉になりそうな新機能が見当たらないので、パフォーマンスの改善が一番のトピックなのかなと思います。
1.18が大盛りだっただけに、1.19の地味さが光りますね。

特に起動時のパフォーマンス改善に重点を当てたようで、改善点は以下のようになっています。

  • スタートアップとコンフィグ周りのパフォーマンス改善
  • スタートアップで利用する、package.jsonから取得した拡張機能の情報をキャッシュから取り出すようにしてパフォーマンス改善
  • スタートアップ時のヘルパープロセス起動を遅延実行することでパフォーマンス改善(対象になっているのは、ファイル監視、ファイル検索、拡張機能のようなプロセス)
  • スタートアップをより速くするための。ファイル読み込み周りの改善
  • ツリーの代わりにより速いリストウィジェットを使うようにし、ブレークポイントビュー(デバッグペイン内のブレークポイント項目のこと?)とエクスプローラーペインを作り直し
  • タッチイベントハンドリングの調整でパフォーマンス改善
  • 使わない不要なレイアウトや計算処理をスキップすることで、ワークベンチ全体のパフォーマンス改善
  • スタートアップに使わないコードを削除することでパフォーマンス改善

パフォーマンス改善のリファクタリングは私も経験がありますが、地味な作業です。
自分の改善がばっちりハマった時の自己満足感はハンパないですが、だいたいは、「速くなったね~」くらいで済まされるので報われないことが多いですね。

そんな私だからこそ、これがいかに重要な改善か分かります!(いや、分かりたい)

 

コマンドライン引数が色々増えているぞ?

私は専らWindowsでVSCodeを起動することが多いので、あまり能動的に使っていなかったのですが、VSCodeはコマンドラインからも起動できます。
たとえば、Linuxなどでは、ターミナルで「code」と入力すれば、GUIの画面が起動するわけです(codeというコマンドがなかったのは少し衝撃でしたね)。

コマンドライン引数として「--status」というのが追加され、VSCodeのバージョン情報や使用しているリソース情報(これは起動しているプロセス単位でCPU使用率、メモリ使用量が表示され、プロセスの親子関係が表示される)、ワークスペースの状態が表示されます。
普段使いでこういう情報が必要になる局面は今までなかったので、主に拡張機能の開発者用の機能でしょうか。

--statusオプションには、もう一つ機能があるようで、デバッグペインでVSCodeの各プロセスのリソース使用量が表示できるようです。
ただしこの機能は正式版には取り込まれていないようで、githubにあるモジュールを追加する必要があります。

それ以外には、コマンドラインのstdin(標準入力)をパイプし、起動したエディタ上にパイプした情報を流すということもできるようになったようです。

これはエラーログなんかに使えるのかなと思ったのですが、決まったファイルにログを垂れ流す仕組みは、フレームワークなどを利用すれば標準装備が当たり前なので、シェルスクリプトをごにょごにょやる時なんかに使うのでしょうか。
利用局面が思いつかないので、この機能は心のどこかに留めておいて、いつかドヤァしたいなと思います。

全然関係ないですが、ログ周りでいうとログファイルを開きながら作業していると、ファイル監視で更新されたらエディタ上の内容も最新のものになるんですが、表示位置も最後尾を追従してくれると非常にいいですよね。

 

ワークベンチのタブの挙動が変わりました

settings.jsonに「workbench.editor.tabSizing」という項目が追加されました。
これは、エディタを複数立ち上げた状態でタブをどう表示するかの設定で、以下の2つのモードが用意されています。

  • fit
  • shrink

「fit」を選んだ場合(こちらがデフォルト)、タブはタイトルが確実に表示されるサイズ以下にはなりません。
困るのはタブが増えて表示しきれなくなった場合で、(恐らく)古いタブから表示されなくなりますので、Ctrl + Tabでリストから拾い上げる必要があります。

「shrink」を選んだ場合は、タブのサイズはどこまでも小さくなりますが、タブの数が増えてくると文字が表示されず、閉じるアイコンしか表示されなくなるという現象が発生します。
先頭の数文字しか表示されなくても判別できる自信がある、Ctrl + Tabが面倒といった場合はshrinkを選択することをおすすめします。

ちなみに私もshrink派です。
といっても、タブ上にマウスカーソルを数秒乗せていれば、ファイルのフルパスが表示されるので、そこまで困ったということはありません。

 

地味に便利なクリップボードとファイルの比較

ファイルとクリップボード内の文字列を比較する機能が追加されました。

githubに上がっている別ブランチのファイルとローカルにあるファイルの比較をする場合、いちいちファイルを用意せずとも、githubのコードをコピペすれば、自分のローカルにあるファイルと比較することができる、という具合です。
上記は私が実際に利用したケースですが、他にも使い道はありそうな気はしています。

 

IntelliSenseが賢くなった

returnをretunとタイポしても、IntelliSenseにはお見通しだということです。
レーベンシュタイン距離でも測っているんでしょうか。

 

コードフォールディング周りのショートカットが変わっている!

主にregion周りのショートカット追加ですが、気になったのは、ブロックコメントのみをフォールドしてくれる、Ctrl + KCtrl + /のショートカット。
素直に便利かもと思ったのですが、皆さんはいかがでしょうか?

 

Git管理している画像ファイルのdiff

これも地味!
ですが、画像をGitで管理していることって多いと思いますし、サイドバイサイドで表示されて比較できるのはかなりいいと思います。

これだけなので、取り上げようか迷ったのですが、バージョンアップのリリースで比較していた画像が、オレンジのVSCodeアイコンと新しい青のVSCodeアイコンだったので・・・。

 

まとめ

他にもワークスペース単位でエクステンションの有効/無効を設定できるなど、パフォーマンス改善に的を絞ったアップデートが多めの1.19でした。

ファイルが大量にあるワークスペースやエクステンションを登録しまくっているVSCodeなどは、かなり挙動が改善されたんじゃないかと思うのですが、私の環境では悲しいですが実感がわくほど速くはならなかったです。
これは改善が無駄だったというわけではなく、ライトな使い方しかしてない私の環境が悪いんです。

大規模開発や開発言語によっては、ついついEclipseに逃げてしまうこともあるので、2018年はVSCodeだけでコードを書ければいいなと思っています。

 
以上です。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
4,642
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

萬代陽一

ソーシャルゲームのウェブ API などの開発がメイン業務ですが、ありがたいことにマーケティングなどいろんな仕事をさせてもらえています。
なおビヨンド内での私の肖像権は CC0 扱いになっています。