はてなの中の人が、Mackerelのフロントエンドの性能チューニングのために作成したsjspが、サーバレスアーキテクチャによる時系列データベースの構築と監視 / Serverlessconf Tokyo 2017dで紹介されていました。
sjspにトランスパイルするだけでCPU boundな処理がわかるそうな。
sjspについては、「シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か」で説明されています。
こんな感じの結果が出るなんて素晴らしい!
========== SORT BY TIME ========== time: 30.20sec count: 71 test6 test.js (line: 31, col: 18) function test6() { time: 16.47sec count: 41 test7 test.js (line: 37, col: 18) function test7() { time: 15.49sec count: 133 test4 test.js (line: 19, col: 18) function test4() { time: 5.98sec count: 216 test1 test.js (line: 1, col: 18) function test1() { time: 4.37sec count: 18 test5 test.js (line: 25, col: 18) function test5() { time: 3.24sec count: 512 test3 test.js (line: 13, col: 18) function test3() { time: 0.87sec count: 67 anonymous test.js (line: 49, col: 24) setInterval(function() { time: 0.80sec count: 2 test2 test.js (line: 7, col: 18) function test2() { time: 0.44sec count: 2 anonymous test.js (line: 43, col: 23) setTimeout(function() { ========== SORT BY COUNT ========== time: 3.24sec count: 512 test3 test.js (line: 13, col: 18) function test3() { time: 5.98sec count: 216 test1 test.js (line: 1, col: 18) function test1() { time: 15.49sec count: 133 test4 test.js (line: 19, col: 18) function test4() { time: 30.20sec count: 71 test6 test.js (line: 31, col: 18) function test6() {