元々のコードというかアイデアは、昔blogに書いた以下のもの
https://t.co/a1LIiLB4Ac
— Kenji Yoshida (@xuwei_k) November 7, 2022
前書いた、file単位でinliningやtyper phaseの処理時間測定するScala 3 compiler plugin、これもchrome trace形式で出すようにしたらとても見やすくでいい感じになった
(まだOSSにしてない。OSSにしたい)
https://t.co/541KxrbAm3
— Kenji Yoshida (@xuwei_k) 2022年11月12日
I just released an initial version of "scala3profile" sbt/compiler plugin pic.twitter.com/czdk2S3CK4
- chrome trace形式で吐き出すようにした
- tweetしたのは、Scala 3 compiler自体をprofileしたもの
- 現状は、file単位で、(経験上遅くなりやすい)typerとinliningのphaseのみ
- 原理上、他のphaseも出せるはずなので、後でもっと改造?
- 特定のfile内部の、どのinline defやimplicitが遅いか?は、Scala 3 compiler側を改造しないと厳しいので、Scala 2のやつ参考にしつつ、本来Scala 3にpull req投げつけたい
- 以前のblogに書いたが、NIGHTLYではないと動かないので注意
- sbtのsub projectごとに吐き出したjsonを、雑にaggregateする機能などを追加したのでsbt pluginも作った