Skip to content

Commit de012c0

Browse files
committed
Measure module and type reference directive times
1 parent 3d63401 commit de012c0

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/compiler/program.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,24 @@ namespace ts {
782782
resolveTypeReferenceDirectiveNamesWorker = (typeReferenceDirectiveNames, containingFile, redirectedReference) => loadWithLocalCache<ResolvedTypeReferenceDirective>(Debug.checkEachDefined(typeReferenceDirectiveNames), containingFile, redirectedReference, loader);
783783
}
784784

785+
const actualResolveModuleNamesWorker = resolveModuleNamesWorker;
786+
resolveModuleNamesWorker = (moduleNames, containingFile, reusedNames, redirectedReference) => {
787+
performance.mark("beforeResolveModule");
788+
const result = actualResolveModuleNamesWorker(moduleNames, containingFile, reusedNames, redirectedReference);
789+
performance.mark("afterResolveModule");
790+
performance.measure("ResolveModule", "beforeResolveModule", "afterResolveModule");
791+
return result;
792+
};
793+
794+
const actualResolveTypeReferenceDirectiveNamesWorker = resolveTypeReferenceDirectiveNamesWorker;
795+
resolveTypeReferenceDirectiveNamesWorker = (typeDirectiveNames, containingFile, redirectedReference) => {
796+
performance.mark("beforeResolveTypeReference");
797+
const result = actualResolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFile, redirectedReference);
798+
performance.mark("afterResolveTypeReference");
799+
performance.measure("ResolveTypeReference", "beforeResolveTypeReference", "afterResolveTypeReference");
800+
return result;
801+
};
802+
785803
// Map from a stringified PackageId to the source file with that id.
786804
// Only one source file may have a given packageId. Others become redirects (see createRedirectSourceFile).
787805
// `packageIdToSourceFile` is only used while building the program, while `sourceFileToPackageName` and `isSourceFileTargetOfRedirect` are kept around.

0 commit comments

Comments
 (0)