I’m wondering if there were any good ways to do a deeper debug on rebuild times. When I run with METEOR_PROFILE I get a lot of time in “files.readFile” probably more than it should need since I am only updating one or two files at a time. My project is relatively big, but I would expect updating a single file should be pretty quick and not 20 seconds.
=> Meteor server restarted at: http://localhost:3000/| (#220) Profiling: ProjectContext prepareProjectForBuild
|
| ProjectContext prepareProjectForBuild...........................140 ms (1)
| ├─ _initializeCatalog............................................11 ms (1)
| │ ├─ LocalCatalog#initialize....................................10 ms (1)
| │ │ ├─ addPatternsToList 7 ms (2)
| │ │ └─ LocalCatalog#_computeEffectiveLocalPackages 1 ms (1)
| │ └─ other _initializeCatalog 1 ms
| ├─ _resolveConstraints...........................................35 ms (1)
| │ ├─ Select Package Versions....................................17 ms (1)
| │ │ ├─ new CS.Input 16 ms (1)
| │ │ └─ other Select Package Versions 2 ms
| │ ├─ files.writeFileAtomically 1 ms (1)
| │ └─ other _resolveConstraints 16 ms
| ├─ _downloadMissingPackages......................................66 ms (1)
| │ ├─ Isopack.readMetadataFromDirectory..........................42 ms (98)
| │ │ ├─ files.stat 5 ms (98)
| │ │ ├─ files.readFile 29 ms (98)
| │ │ └─ other Isopack.readMetadataFromDirectory 8 ms
| │ └─ other _downloadMissingPackages 23 ms
| ├─ _buildLocalPackages...........................................26 ms (1)
| │ ├─ _ensurePackageLoaded(accounts-base)........................14 ms (1)
| │ │ ├─ _ensurePackageLoaded(ecmascript).........................3 ms (1)
| │ │ │ └─ _ensurePackageLoaded(babel-compiler)..................2 ms (1)
| │ │ │ └─ _ensurePackageLoaded(ecmascript-runtime) 1 ms (1)
| │ │ ├─ _ensurePackageLoaded(ddp)................................5 ms (1)
| │ │ │ ├─ _ensurePackageLoaded(ddp-client) 3 ms (1)
| │ │ │ └─ _ensurePackageLoaded(ddp-server)......................2 ms (1)
| │ │ │ └─ _ensurePackageLoaded(webapp) 2 ms (1)
| │ │ ├─ _ensurePackageLoaded(mongo)..............................2 ms (1)
| │ │ │ └─ _ensurePackageLoaded(allow-deny) 1 ms (1)
| │ │ └─ other _ensurePackageLoaded(accounts-base) 1 ms
| │ ├─ _ensurePackageLoaded(accounts-facebook) 2 ms (1)
| │ └─ other _buildLocalPackages 3 ms
| └─ _saveChangedMetadata 2 ms (1)
|
| Top leaves:
|
| (#220) Total: 140 ms (ProjectContext prepareProjectForBuild)
|
| (#221) Profiling: Rebuild App
|
| files.stat 0 ms (1)
| files.readFile 0 ms (1)
| Rebuild App..................................................24,247 ms (1)
| └─ bundler.bundle............................................24,246 ms (1)
| ├─ initFromAppDir.............................................10 ms (1)
| │ ├─ optimistic readJsonOrNull................................3 ms (9)
| │ │ ├─ optimistic readFile...................................2 ms (9)
| │ │ │ └─ files.readFile 2 ms (9)
| │ │ └─ other optimistic readJsonOrNull 1 ms
| │ └─ other initFromAppDir 6 ms
| ├─ compiler.compile(the app)..............................18,936 ms (1)
| │ ├─ compileUnibuild (the app)...........................18,932 ms (3)
| │ │ ├─ PackageSource#_findSources for os....................42 ms (1)
| │ │ │ ├─ _realpath..........................................6 ms (111)
| │ │ │ │ ├─ files.lstat 4 ms (111)
| │ │ │ │ └─ other _realpath 1 ms
| │ │ │ ├─ files.readdirWithTypes 13 ms (222)
| │ │ │ └─ other PackageSource#_findSources for os 23 ms
| │ │ ├─ optimistic hashOrNull.............................5,025 ms (63842)
| │ │ │ ├─ optimistic readFile............................3,824 ms (63842)
| │ │ │ │ ├─ files.readFile 3,542 ms (63842)
| │ │ │ │ └─ other optimistic readFile 283 ms
| │ │ │ ├─ sha1 811 ms (63842)
| │ │ │ └─ other optimistic hashOrNull 390 ms
| │ │ ├─ optimistic readFile...............................9,776 ms (63842)
| │ │ │ ├─ files.readFile 9,585 ms (63842)
| │ │ │ └─ other optimistic readFile 191 ms
| │ │ ├─ PackageSource#_findSources for web.browser...........34 ms (1)
| │ │ │ ├─ _realpath..........................................6 ms (206)
| │ │ │ │ ├─ files.lstat 4 ms (206)
| │ │ │ │ └─ other _realpath 2 ms
| │ │ │ ├─ files.readdirWithTypes 10 ms (412)
| │ │ │ └─ other PackageSource#_findSources for web.browser 18 ms
| │ │ ├─ PackageSource#_findSources for web.browser.legacy....27 ms (1)
| │ │ │ ├─ _realpath 2 ms (206)
| │ │ │ ├─ files.readdirWithTypes 1 ms (412)
| │ │ │ └─ other PackageSource#_findSources for web.browser.legacy 24 ms
| │ │ └─ other compileUnibuild (the app) 4,026 ms
| │ └─ other compiler.compile(the app) 4 ms
| ├─ compiler.lint(the app).....................................19 ms (1)
| │ ├─ Isopack#getUnibuildAtArch 14 ms (177)
| │ └─ other compiler.lint(the app) 5 ms
| ├─ Isopack#getUnibuildAtArch 13 ms (177)
| ├─ bundler.bundle..makeClientTarget........................4,947 ms (1)
| │ └─ Target#make..........................................4,947 ms (1)
| │ ├─ Isopack#getUnibuildAtArch 60 ms (1127)
| │ ├─ Target#_runCompilerPlugins..........................120 ms (1)
| │ │ ├─ Isopack#getUnibuildAtArch 4 ms (2033)
| │ │ ├─ plugin ecmascript 5 ms (1)
| │ │ ├─ plugin meteor 1 ms (1)
| │ │ ├─ plugin typescript 32 ms (1)
| │ │ ├─ plugin static-html................................49 ms (1)
| │ │ │ ├─ files.readFile 16 ms (222)
| │ │ │ └─ other plugin static-html 33 ms
| │ │ ├─ plugin fourseven:scss 3 ms (1)
| │ │ └─ other Target#_runCompilerPlugins 25 ms
| │ ├─ Target#_emitResources.............................4,328 ms (1)
| │ │ ├─ PackageSourceBatch.computeJsOutputFilesMap.....3,324 ms (1)
| │ │ │ ├─ ImportScanner#getAbsModuleId 19 ms (1867)
| │ │ │ ├─ ImportScanner#realPath........................137 ms (1866)
| │ │ │ │ ├─ optimistic lstat............................96 ms (8150)
| │ │ │ │ │ ├─ files.lstat 83 ms (8150)
| │ │ │ │ │ └─ other optimistic lstat 13 ms
| │ │ │ │ ├─ files.realpath 4 ms (22)
| │ │ │ │ └─ other ImportScanner#realPath 38 ms
| │ │ │ ├─ ImportScanner#scanImports for modules...........4 ms (1)
| │ │ │ │ ├─ ImportScanner#readFile 1 ms (3)
| │ │ │ │ └─ other ImportScanner#scanImports for modules 1 ms
| │ │ │ ├─ ImportScanner#scanImports for promise 1 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for ecmascript-runtime-client.57 ms (1)
| │ │ │ │ ├─ ImportScanner#resolve 19 ms (192)
| │ │ │ │ ├─ ImportScanner#getAbsModuleId 1 ms (85)
| │ │ │ │ ├─ ImportScanner#readFile......................30 ms (85)
| │ │ │ │ │ ├─ optimistic readFile......................23 ms (85)
| │ │ │ │ │ │ └─ files.readFile 23 ms (85)
| │ │ │ │ │ ├─ optimistic hashOrNull.....................5 ms (85)
| │ │ │ │ │ │ └─ optimistic readFile....................4 ms (85)
| │ │ │ │ │ │ └─ files.readFile 4 ms (85)
| │ │ │ │ │ └─ other ImportScanner#readFile 1 ms
| │ │ │ │ ├─ DefaultHandlers.js 1 ms (85)
| │ │ │ │ └─ other ImportScanner#scanImports for ecmascript-runtime-client 5 ms
| │ │ │ ├─ ImportScanner#scanImports for react-fast-refresh.2 ms (1)
| │ │ │ │ └─ ImportScanner#readFile 1 ms (3)
| │ │ │ ├─ ImportScanner#scanImports for base64 2 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for ejson 2 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for random 3 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for minimongo.........4 ms (1)
| │ │ │ │ ├─ files.stat 1 ms (18)
| │ │ │ │ └─ other ImportScanner#scanImports for minimongo 1 ms
| │ │ │ ├─ ImportScanner#scanImports for ddp-common 2 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for ddp-client........3 ms (1)
| │ │ │ │ └─ files.stat 1 ms (20)
| │ │ │ ├─ ImportScanner#scanImports for mongo 1 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for cultofcoders:redis-oplog 2 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for accounts-base 1 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for oauth 1 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for tmeasday:check-npm-versions 3 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for aldeed:collection2 2 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for http 1 ms (1)
| │ │ │ ├─ ImportScanner#scanImports for the app.......2,760 ms (1)
| │ │ │ │ ├─ files.stat 304 ms (5987)
| │ │ │ │ ├─ sha1 1 ms (52)
| │ │ │ │ ├─ Babel.compile 577 ms (685)
| │ │ │ │ ├─ ImportScanner#findImportedModuleIdentifiers.81 ms (2449)
| │ │ │ │ │ ├─ sha1 15 ms (1328)
| │ │ │ │ │ └─ other ImportScanner#findImportedModuleIdentifiers 66 ms
| │ │ │ │ ├─ ImportScanner#resolve......................164 ms (13138)
| │ │ │ │ │ ├─ ImportScanner#addPkgJsonToOutput.........23 ms (3095)
| │ │ │ │ │ │ ├─ ImportScanner#getAbsModuleId 3 ms (290)
| │ │ │ │ │ │ ├─ sha1 2 ms (290)
| │ │ │ │ │ │ ├─ ImportScanner#resolvePkgJsonBrowserAliases 3 ms (290)
| │ │ │ │ │ │ └─ other ImportScanner#addPkgJsonToOutput 15 ms
| │ │ │ │ │ └─ other ImportScanner#resolve 141 ms
| │ │ │ │ ├─ ImportScanner#getAbsModuleId 19 ms (1785)
| │ │ │ │ ├─ ImportScanner#realPath.....................197 ms (1785)
| │ │ │ │ │ ├─ optimistic lstat........................147 ms (10381)
| │ │ │ │ │ │ ├─ files.lstat 127 ms (10381)
| │ │ │ │ │ │ └─ other optimistic lstat 20 ms
| │ │ │ │ │ └─ other ImportScanner#realPath 50 ms
| │ │ │ │ ├─ ImportScanner#readFile.....................970 ms (1765)
| │ │ │ │ │ ├─ optimistic readFile.....................742 ms (1765)
| │ │ │ │ │ │ ├─ files.readFile 734 ms (1765)
| │ │ │ │ │ │ └─ other optimistic readFile 9 ms
| │ │ │ │ │ ├─ optimistic hashOrNull...................174 ms (1765)
| │ │ │ │ │ │ ├─ optimistic readFile..................123 ms (1765)
| │ │ │ │ │ │ │ ├─ files.readFile 118 ms (1765)
| │ │ │ │ │ │ │ └─ other optimistic readFile 5 ms
| │ │ │ │ │ │ ├─ sha1 40 ms (1765)
| │ │ │ │ │ │ └─ other optimistic hashOrNull 11 ms
| │ │ │ │ │ └─ other ImportScanner#readFile 53 ms
| │ │ │ │ ├─ DefaultHandlers.js..........................59 ms (1740)
| │ │ │ │ │ ├─ reifyCompileWithCache 22 ms (1740)
| │ │ │ │ │ └─ other DefaultHandlers.js 37 ms
| │ │ │ │ ├─ DefaultHandlers.json 20 ms (23)
| │ │ │ │ └─ other ImportScanner#scanImports for the app 368 ms
| │ │ │ ├─ ImportScanner#scanMissingModules for the app....4 ms (2)
| │ │ │ │ └─ ImportScanner#readFile.......................2 ms (3)
| │ │ │ │ └─ optimistic readFile.......................2 ms (3)
| │ │ │ │ └─ files.readFile 2 ms (3)
| │ │ │ ├─ ImportScanner#scanMissingModules for socket-stream-client 2 ms (1)
| │ │ │ ├─ ImportScanner#scanMissingModules for react-meteor-data.3 ms (1)
| │ │ │ │ └─ files.stat 1 ms (14)
| │ │ │ ├─ PackageSourceBatch._watchOutputFiles..........252 ms (1)
| │ │ │ │ ├─ optimistic hashOrNull......................241 ms (2181)
| │ │ │ │ │ ├─ optimistic readFile.....................196 ms (2181)
| │ │ │ │ │ │ ├─ files.readFile 190 ms (2181)
| │ │ │ │ │ │ └─ other optimistic readFile 6 ms
| │ │ │ │ │ ├─ sha1 35 ms (2181)
| │ │ │ │ │ └─ other optimistic hashOrNull 10 ms
| │ │ │ │ └─ other PackageSourceBatch._watchOutputFiles 10 ms
| │ │ │ └─ other PackageSourceBatch.computeJsOutputFilesMap 43 ms
| │ │ ├─ PackageSourceBatch#getResources..................702 ms (77)
| │ │ │ ├─ PackageSourceBatch#_linkJS....................700 ms (77)
| │ │ │ │ ├─ sha1 5 ms (214)
| │ │ │ │ ├─ linker File#getPrelinkedOutput 4 ms (1)
| │ │ │ │ ├─ linker.fullLink............................483 ms (1)
| │ │ │ │ │ ├─ linker Module#getPrelinkedFiles.........476 ms (1)
| │ │ │ │ │ │ ├─ linker File#getPrelinkedOutput 3 ms (238)
| │ │ │ │ │ │ ├─ getPrelinkedFiles toStringWithSourceMap 310 ms (1)
| │ │ │ │ │ │ └─ other linker Module#getPrelinkedFiles 163 ms
| │ │ │ │ │ └─ other linker.fullLink 7 ms
| │ │ │ │ ├─ files.rm_recursive 22 ms (1)
| │ │ │ │ ├─ files.writeFileAtomically...................77 ms (1)
| │ │ │ │ │ └─ files.writeFile 76 ms (1)
| │ │ │ │ └─ other PackageSourceBatch#_linkJS 109 ms
| │ │ │ └─ other PackageSourceBatch#getResources 3 ms
| │ │ ├─ sha512 38 ms (1530)
| │ │ ├─ sha1 6 ms (1550)
| │ │ └─ other Target#_emitResources 258 ms
| │ ├─ Target#minifyJs.....................................154 ms (1)
| │ │ ├─ sha512 21 ms (78)
| │ │ └─ other Target#minifyJs 132 ms
| │ ├─ ClientTarget#minifyCss 187 ms (1)
| │ ├─ Target#rewriteSourceMaps 1 ms (1)
| │ ├─ sha512 56 ms (1609)
| │ ├─ sha1 7 ms (1609)
| │ └─ other Target#make 33 ms
| ├─ bundler writeTargetToPath.................................290 ms (1)
| │ ├─ ClientTarget#write.....................................288 ms (1)
| │ │ ├─ sha512 2 ms (10)
| │ │ ├─ bundler writeFile....................................23 ms (1660)
| │ │ │ ├─ Builder#_ensureDirectory 11 ms (1659)
| │ │ │ ├─ Builder#write......................................3 ms (1)
| │ │ │ │ └─ files.rename 2 ms (1)
| │ │ │ └─ other bundler writeFile 9 ms
| │ │ ├─ Builder#write........................................55 ms (1569)
| │ │ │ ├─ Builder#_ensureDirectory 10 ms (1569)
| │ │ │ ├─ sha1 22 ms (1569)
| │ │ │ ├─ files.writeFile 2 ms (1)
| │ │ │ ├─ files.rename 3 ms (1)
| │ │ │ └─ other Builder#write 18 ms
| │ │ ├─ files.writeFile 2 ms (1)
| │ │ └─ other ClientTarget#write 205 ms
| │ └─ Builder#complete 1 ms (1)
| └─ other bundler.bundle 32 ms
|
| Top leaves:
| files.readFile..........................................14,219 ms (133830)
| other compileUnibuild (the app)..........................4,026 ms (3)
| sha1.......................................................948 ms (74857)
| Babel.compile..............................................584 ms (765)
| other optimistic readFile..................................494 ms (133577)
| other optimistic hashOrNull................................412 ms (67873)
| other ImportScanner#scanImports for the app................368 ms (1)
| files.stat.................................................319 ms (6253)
| getPrelinkedFiles toStringWithSourceMap....................310 ms (1)
| other Target#_emitResources................................258 ms (1)
| files.lstat................................................220 ms (19082)
| other ClientTarget#write...................................205 ms (1)
| other linker Module#getPrelinkedFiles......................163 ms (1)
| other ImportScanner#resolve................................141 ms (13138)
| other Target#minifyJs......................................132 ms (1)
| sha512.....................................................118 ms (3238)
| other PackageSourceBatch#_linkJS...........................109 ms (77)
|
| (#221) Total: 24,247 ms (Rebuild App)
|
And here is my packages, in case it is relevant (Meteor 2.12)
meteor-base@1.5.1 # Packages every Meteor app needs to have
mongo@1.16.6 # The database Meteor supports right now
tracker@1.3.2 # Meteor's client-side reactive programming library
cultofcoders:redis-oplog
fortawesome:fontawesome
reactive-var@1.0.12
email@2.2.5
check@1.3.2
gadicohen:sitemaps
accounts-base@2.2.8
accounts-facebook@1.3.3
service-configuration@1.3.1
standard-minifier-js@2.8.1
random@1.2.1
zeroasterisk:throttle
dynamic-import@0.7.3
fourseven:scss@4.5.4
seba:minifiers-autoprefixer
tmeasday:acceptance-test-driver
react-meteor-data
aldeed:collection2
accounts-password@2.3.4
oauth@2.2.0
ecmascript@0.16.7
static-html@1.3.2
hot-module-replacement@0.5.3
meteortesting:mocha
percolate:migrations
lmieulet:meteor-coverage
disable-oplog@1.0.7
http
typescript@4.9.4