GitHub一部の機能をパフォーマンス改善したときにそれを計測したり、データを集めたいときがあります。それだけのためにライブラリを追加するのも面倒くさい(実装後に計測コードは外すので)し、コンソールに結果を出すのもデータ収集的にイマイチです。start}ms`);結果をコピーしてSpreadSheetなどで可視化できたり、処理時間と関連する要素も保存しておきたいです。APIについては次の記事を参考にしてみてください。Scratchスニペット最新のスニペットはazu/performance-mark-snippetの方を参照してください。スニペットはmark関数を定義しているだけです。使いたいところでこのスニペットを埋め込んで利用できます。使うときは、mark関数を呼び出すとmarkEnd関数を返します。mark関数を呼び出してから、markEnd関数を呼び出すまでの時間が計測時間になります。引数には計測に紐づけたい任意のデータを渡す。処理時間だけなら引数はいらない計測した結果はすべてperformance.measureに保存されるので、performance.getEntries()で取り出せます。markEndで紐づけたデータはwindow.window.__performance_mark_snippet_mapのMapオブジェクトに保存されています。次のスニペットを計測後に実行すれば、console.tableでデータを一覧できます。variableで変数に保存してcopy(temp1)などでコピーすると便利です。Timingにラベル付きで表示されます。先程の収集スニペットを実行すればconsole.tableで一覧できます。variableで変数に保存して、copy(temp1)などでコピーできます。CSVするなりして、SpreadSheetで可視化したりすると良いです。Requestだすのに大掛かりな仕組みは導入したくないので、こういうスニペットを使うことがあります。details)とdetailsに関連データを保存できるようになるのでもう少しましになると思います。78で実装されましたpeformance.markを使ってマーキングとデータの回収の2フェーズに分けると計測がかなり楽になるのでおすすめです。常時計測するなら、DataDogなどのそれ系のサービスは大体似たようなロギングの仕組みがあるのでそちらを使いましょう。タグ:JavaScriptperformanceお知らせ欄JavaScriptに関する最新情報は週一でJSer.infoを更新しています。efcl/efcl.github.ioからご意見下さい関連記事コメントを。