Skip to content

Performance regression in TS 5.4 #57781

Description

🔎 Search Terms

performance regression

🕗 Version & Regression Information

  • This changed in commit or PR 4bcbc16

⏯ Playground Link

No response

💻 Code

I cannot share our repository nor can I feasibly pare it down to be shareable.

🙁 Actual behavior

Typechecking time in our monorepo takes about 375 seconds on my local machine.

🙂 Expected behavior

Typechecking time used to be about 315 seconds on my local machine with the same code.

Additional information about the issue

Here's my usage of every-ts to bisect the results. It narrows down to #56087. cc Mateusz Burzyński (@Andarist)

$every-tsbisectstartUpdating files: 100%(5762/5762),done.PreviousHEADpositionwase441420483Updatepackage-lock.jsonHEADisnowat9684ba6b0dCherry-pickfixforcross-fileinlayhints(#55476)to`release-5.2`andLKG(#55487)
status: waitingforbothgoodandbadcommitsBuildingTypeScript...
TypeScriptbuiltsuccessfully!$every-tsbisectbad5.4.2Resolved5.4.2tov5.4.2
status: waitingforgoodcommit(s),badcommitknown$every-tsbisectgoode44142048305d42ec4fc753457aa561f8e247e4f
Bisecting: 66revisionslefttotestafterthis(roughly6steps)
remote: Enumerating objects: 125,done.remote: Counting objects: 100%(101/101),done.remote: Compressing objects: 100%(65/65),done.remote: Total125(delta42),reused36(delta36),pack-reused24
Receiving objects: 100%(125/125),1.68MiB|2.45MiB/s,done.Resolvingdeltas: 100%(57/57),done.[dad9f17c773f97426f90539dd75a6a5100d342d0]Updatepackage-lock.jsonBuildingTypeScript...
TypeScriptbuiltsuccessfully!$every-tsbisectbad # 368.143s
Bisecting: 32revisionslefttotestafterthis(roughly5steps)
remote: Enumerating objects: 29,done.remote: Counting objects: 100%(25/25),done.remote: Compressing objects: 100%(24/24),done.remote: Total29(delta1),reused1(delta1),pack-reused4
Receiving objects: 100%(29/29),1.31MiB|6.25MiB/s,done.Resolvingdeltas: 100%(1/1),done.[69f2e2ae651a13ad865727f42af8fac48c64e137]Issuebettererrorwhenunresolvablepackagein`--moduleResolution node10`resolveswith`--moduleResolution bundler`(#56949)BuildingTypeScript...
TypeScriptbuiltsuccessfully!$every-tsbisectbad # 371.229s Bisecting: 16revisionslefttotestafterthis(roughly4steps)
remote: Enumerating objects: 6,done.remote: Counting objects: 100%(6/6),done.remote: Compressing objects: 100%(6/6),done.remote: Total6(delta0),reused0(delta0),pack-reused0
Receiving objects: 100%(6/6),939.99KiB|5.08MiB/s,done.[81793210e6337ad8d20f2b7e44e9489687c2d29c]Updatepackage-lock.jsonBuildingTypeScript...
TypeScriptbuiltsuccessfully!$every-tsbisectbad # 374.109s
Bisecting: 7revisionslefttotestafterthis(roughly3steps)
remote: Enumerating objects: 4,done.remote: Counting objects: 100%(4/4),done.remote: Compressing objects: 100%(4/4),done.remote: Total4(delta0),reused0(delta0),pack-reused0
Receiving objects: 100%(4/4),784.99KiB|6.04MiB/s,done.[1e00399a383d253610ec18d3a77d08b671219fc2]Fixedemitofreturnstatementswithparenthesizedassertionsandcomments(#56601)BuildingTypeScript...
TypeScriptbuiltsuccessfully!$every-tsbisectgood # 315.135s
Bisecting: 3revisionslefttotestafterthis(roughly2steps)
remote: Enumerating objects: 1,done.remote: Counting objects: 100%(1/1),done.remote: Total1(delta0),reused0(delta0),pack-reused0
Receiving objects: 100%(1/1),549.70KiB|6.04MiB/s,done.[4557e34e7003f5dd11fd33881ae91d10451fb23a]Emitdeclarationsusingalternativecontainingmodulesfortypesexportedusingseparateexportstatements(#56857)BuildingTypeScript...
TypeScriptbuiltsuccessfully!$every-tsbisectgood # 319.945s
Bisecting: 1revisionlefttotestafterthis(roughly1step)[2c14a1c2250d0b891f743c1b6ae58ac951942206]fix(55650): Wrong/missingquickinfoinJSDoc @implementstag(#56884)BuildingTypeScript...
TypeScriptbuiltsuccessfully!$every-tsbisectbad # 364.453s
Bisecting: 0revisionslefttotestafterthis(roughly0steps)[4bcbc16cff6c65caf349f1c1df4dc7b6809468ae]Usesymbolsoftypealiaseswhenemittingdeclarations(#56087)BuildingTypeScript...
TypeScriptbuiltsuccessfully!$every-tsbisectbad # 368.270s4bcbc16cff6c65caf349f1c1df4dc7b6809468aeisthefirstbadcommitcommit4bcbc16cff6c65caf349f1c1df4dc7b6809468ae
Author: MateuszBurzyński<mateuszburzynski@gmail.com>Date: TueJan922:02:522024+0100Usesymbolsoftypealiaseswhenemittingdeclarations(#56087)src/compiler/checker.ts|6+++
.../reference/declarationEmitUsingTypeAlias1.js|47++++++++++++++++++++++.../declarationEmitUsingTypeAlias1.symbols|46+++++++++++++++++++++
.../reference/declarationEmitUsingTypeAlias1.types|43++++++++++++++++++++.../compiler/declarationEmitUsingTypeAlias1.ts|30++++++++++++++5fileschanged,172insertions(+)createmode100644tests/baselines/reference/declarationEmitUsingTypeAlias1.jscreatemode100644tests/baselines/reference/declarationEmitUsingTypeAlias1.symbolscreatemode100644tests/baselines/reference/declarationEmitUsingTypeAlias1.typescreatemode100644tests/cases/compiler/declarationEmitUsingTypeAlias1.tsBuildingTypeScript...
TypeScriptbuiltsuccessfully!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Fix AvailableA PR has been opened for this issueNeeds More InfoThe issue still hasn't been fully clarified

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions