Go言語のLanguage ServerであるGoplsが今夏アップグレードされ、v0.12がリリースされました。
Scaling gopls for the growing Go ecosystem - The Go Programming Language
As the Go ecosystem gets bigger, gopls must get smaller
前バージョンに比較してメモリ効率がレベルアップされています。
またファイルベースでのキャッシュで各パッケージの情報を保持するのですが、プロセスを横断してキャッシュが持続するため
goplsを再起動した場合でも動作が速いままだったり、複数のgoplsインスタンスを起動した際のパフォーマンスのシナジーが大きくなったりするようです。
また今まではインメモリのパッケージに対してしか静的分析ができなかったのに対し、v0.12ではこのメモリ制限が撤廃されたことによって
パッケージ間の依存関係の分析が正確にできるようになりました。
これにより、Go標準のパッケージの関数を自前でラップした、というような場合でも、そのフォーマットの間違いを捕捉できるようになったりするそうです。
コメント