如何调试 TypeScript 编译性能问题
Posted
技术标签:
【中文标题】如何调试 TypeScript 编译性能问题【英文标题】:How to debug TypeScript compilation performance issues 【发布时间】:2019-08-12 13:14:25 【问题描述】:我的 TypeScript 项目已经进行了一段时间,而且相当大。最近编译时性能变得明显变差了。我认为很可能是我在某处包含的一些“整洁”的打字技巧导致了这种情况。
不幸的是,这是一个大型项目,并且包含许多其他大型 TypeScript 依赖项,因此很难知道确切的根本原因。
在这种情况下是否有任何工具可以调试 TS 编译器类型检查的性能?例如。查看哪些文件/类型占用 TypeScript 最多的时间来编译。
【问题讨论】:
--diagnostics
有帮助吗?
@AaronBeall --diagnostics
告诉我我有多少类型和文件,等等。但这并没有让我更接近了解哪些文件或类型导致问题。有没有办法知道,例如,哪些文件生成了最多的类型?大多数“昂贵”的类型最有趣,但我怀疑很难定义。
我也有兴趣诊断缓慢的 TypeScript 性能 - 来自社区的任何线索?
我有一个使用 typebox 库 github.com/sinclairzx81/typebox 的 1600 loc 项目,我也遇到了性能问题(编译时间超过 120 秒)。
你可以试试this approach 并检查每个声明文件的大小,看看哪些是最大的:tsc --noEmit false --declaration --emitDeclarationOnly --extendedDiagnostics --declarationDir ./declarations
【参考方案1】:
TypeScript 4.1 引入了 generateTrace 标志,以便更容易识别程序中编译时间最长的部分。
有专门的WIKIhere
请记住:
此功能仍处于试验阶段,可能会在 TS 4.2 中发生重大变化
【讨论】:
以上是关于如何调试 TypeScript 编译性能问题的主要内容,如果未能解决你的问题,请参考以下文章