本連載は分散型マイクロブログ用オープンソースソフトウェアMisskeyの開発に関する紹介と、関連するWeb技術について解説を行っています。
今回は、MisskeyのコードベースでTypeScript 7.
TypeScript 7.0
先日、TypeScript 7.
コンパイラがGoで再実装され、並列処理が活用されるようになったことで大幅にパフォーマンスが向上しています。
Misskeyのコードベースにおいては、ほぼ改修の必要なしに7.
ベンチマーク
ベンチマークを紹介します。環境は以下のとおりです。
- Misskey v2026.
7.0 - TypeScript 6.
0.3 / TypeScript 7. 0.2 - Node.
js 26. 4.0 / pnpm 11. 21. 0 - CPU: Intel Core i9-13900K
結果は以下のようになりました。なお、値は5回実行した際の平均で、(純)とあるのはビルドプロセスの起動時間などを省いた純粋なコンパイラ内部の処理時間です。
| 指標 | 6. |
7. |
高速化 |
|---|---|---|---|
| backend emit | 9. |
1. |
5. |
| backend type check | 8. |
1. |
4. |
| backend emit (純) | 8. |
1. |
8. |
| backend type check (純) | 7. |
0. |
8. |
メモリ使用量の比較は以下のとおりです。
| 指標 | 6. |
7. |
削減量 |
|---|---|---|---|
| backend emit | 1,067 MB | 1,002 MB | 64 MB減 (-6%) |
| backend type check | 993 MB | 894 MB | 99 MB減 (-10%) |
さらに、シングルスレッドモード--singleThreaded)
| 指標 | 6. |
7. |
削減量 |
|---|---|---|---|
| backend emit | 1,067 MB | 744 MB | 323 MB減 (-30%) |
| backend type check | 993 MB | 643 MB | 350 MB減 (-35%) |
よって、Misskeyのコードベースでも公式発表にある
開発中は繰り返しビルドを行いますし、複雑な型の推論も行われるので、ここが高速化する恩恵は大きいです。
さらに、わずかにメモリ使用量が減ったほか、シングルスレッドモードでは30%以上も省メモリ化したことも確認できました。
シングルスレッドの場合、コンパイラの処理時間は筆者の環境では約3倍ほど遅くなりましたが(とはいっても6.
APIについて
TypeScript 7.
そのためMisskeyでは、バックエンドは7.
とはいえ7のAPI実装は鋭意開発中という感じなので、完全に移行できる日はそう遠くないと思います。
最近では、Content mappersという仕組みが提案・
Content mappersの詳細は割愛しますが、この概念の検討にあたってはまさにVueコンポーネントのような、TypeScriptを別の言語内に埋め込むようなユースケースでの使用が考慮されています。
Content mappers含む公式APIがリリースされ次第、各種ライブラリでも7.
まとめ
今回の検証で、TypeScript 7.
7.
今後APIが実装され、7.
また、
