angular-docs-cn/packages
Pete Bacon Darwin 7f2330a968 perf(ivy): ngcc - add a cache to the FileSystem (#30525)
When profiling ngcc it is notable that a large amount of time
is spent dealing with an exception that is thrown (and handled
internally by fs) when checking the existence of a file.

We check file existence a lot in both finding entry-points
and when TS is compiling code. This commit adds a simple
cached `FileSystem`, which wraps a real `FileSystem` delegate.
This will reduce the number of calls through to `fs.exists()` and
`fs.readFile()` on the delegate.

Initial benchmarks indicate that the cache is miss to hit ratio
for `exists()` is about 2:1, which means that we save about 1/3
of the calls to `fs.existsSync()`.

Note that this implements a "non-expiring" cache, so it is not suitable
for a long lived `FileSystem`, where files may be modified externally.
The cache will be updated if a file is changed or moved via
calls to `FileSystem` methods but it will not be aware of changes
to the files system from outside the `FileSystem` service.

For ngcc we must create a new `FileSystem` service
for each run of `mainNgcc` and ensure that all file operations
(including TS compilation) use the `FileSystem` service.
This ensures that it is very unlikely that a file will change
externally during `mainNgcc` processing.

PR Close #30525
2019-07-09 09:40:46 -07:00
..
animations build: convert entry_point to label (#30627) 2019-06-11 00:03:11 +00:00
bazel fix(bazel): revert location of xi18n outputs to bazel-genfiles (#31410) 2019-07-03 14:15:12 -07:00
benchpress build: remove unreferenced tsconfig-build.json files (#30858) 2019-06-05 09:03:36 -07:00
common docs: remove inappropriate link (#31091) 2019-06-19 15:31:56 -07:00
compiler fix(compiler): give ASTWithSource its own visit method (#31347) 2019-07-08 10:29:07 -07:00
compiler-cli perf(ivy): ngcc - add a cache to the FileSystem (#30525) 2019-07-09 09:40:46 -07:00
core docs: api doc cleanup (#31377) 2019-07-08 09:51:59 -07:00
docs
elements build: update to rules_nodejs 0.32.2 (#31325) 2019-07-01 14:16:42 -07:00
examples docs: api doc cleanup (#31377) 2019-07-08 09:51:59 -07:00
forms build: convert entry_point to label (#30627) 2019-06-11 00:03:11 +00:00
http build: convert entry_point to label (#30627) 2019-06-11 00:03:11 +00:00
language-service refactor(language-service): Remove NgLSHost -> NgLS dependency (#31122) 2019-06-19 15:19:56 -07:00
platform-browser docs: add platform to glossary (#30731) 2019-06-12 11:46:25 -07:00
platform-browser-dynamic build: convert entry_point to label (#30627) 2019-06-11 00:03:11 +00:00
platform-server docs: add platform to glossary (#30731) 2019-06-12 11:46:25 -07:00
platform-webworker build: convert entry_point to label (#30627) 2019-06-11 00:03:11 +00:00
platform-webworker-dynamic build: convert entry_point to label (#30627) 2019-06-11 00:03:11 +00:00
private/testing test(ivy): add onlyInIvy perf counter expectations (#30339) 2019-05-09 11:22:00 -07:00
router Revert "fix(router): adjust UrlTree redirect to replace URL if in eager update (#31168)" (#31344) 2019-06-28 11:40:27 -07:00
service-worker build: update to rules_nodejs 0.32.2 (#31325) 2019-07-01 14:16:42 -07:00
upgrade feat(upgrade): provide unit test helpers for wiring up injectors (#16848) 2019-06-20 17:04:01 -07:00
zone.js fix(zone.js): restore definition of global (#31453) 2019-07-09 09:34:50 -07:00
BUILD.bazel build: rules_nodejs 0.26.0 & use @npm instead of @ngdeps now that downstream angular build uses angular bundles (#28871) 2019-02-28 12:06:36 -08:00
README.md
empty.ts
goog.d.ts test(ivy): add bundling test `todo_i18n` (#27420) 2018-12-04 19:59:12 -08:00
license-banner.txt build: bump year (#27880) 2019-01-11 11:15:59 -08:00
system.d.ts
tsconfig-build.json build: update to rules_typescript 0.25.1 (#28625) 2019-02-21 07:46:21 -08:00
tsconfig-test.json build: disable must-use-promises check in ts_library tsetse for tests as... (#31325) 2019-07-01 14:16:42 -07:00
tsconfig.json build: move zone.js to angular repo (#30962) 2019-06-20 11:27:39 -07:00
types.d.ts build: switch to typescript's es2015 typings (#28570) 2019-02-06 14:17:55 -05:00

README.md

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

License: MIT