From 59626051d0be7335147703d31d65212cd2d5eeaa Mon Sep 17 00:00:00 2001 From: Jasper De Moor Date: Fri, 11 May 2018 16:37:05 +0200 Subject: [PATCH] improve the time reported by the bundler (#1343) --- src/Asset.js | 2 ++ src/Bundle.js | 15 +++++++++++---- src/Bundler.js | 5 +++-- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/Asset.js b/src/Asset.js index c3fc95d6aa2..69fc9252326 100644 --- a/src/Asset.js +++ b/src/Asset.js @@ -37,6 +37,8 @@ class Asset { this.parentBundle = null; this.bundles = new Set(); this.cacheData = {}; + this.startTime = 0; + this.endTime = 0; this.buildTime = 0; this.bundledSize = 0; } diff --git a/src/Bundle.js b/src/Bundle.js index dc7d277c395..a138e95cbcd 100644 --- a/src/Bundle.js +++ b/src/Bundle.js @@ -196,10 +196,17 @@ class Bundle { await packager.end(); - this.bundleTime = Date.now() - startTime; - for (let asset of this.assets) { - this.bundleTime += asset.buildTime; - } + let assetArray = Array.from(this.assets); + let assetStartTime = + this.type === 'map' + ? 0 + : assetArray.sort((a, b) => a.startTime - b.startTime)[0].startTime; + let assetEndTime = + this.type === 'map' + ? 0 + : assetArray.sort((a, b) => b.endTime - a.endTime)[0].endTime; + let packagingTime = Date.now() - startTime; + this.bundleTime = assetEndTime - assetStartTime + packagingTime; } async _addDeps(asset, packager, included) { diff --git a/src/Bundler.js b/src/Bundler.js index 163cd6a1d48..b1789be5b81 100644 --- a/src/Bundler.js +++ b/src/Bundler.js @@ -495,7 +495,7 @@ class Bundler extends EventEmitter { asset.processed = true; // First try the cache, otherwise load and compile in the background - let startTime = Date.now(); + asset.startTime = Date.now(); let processed = this.cache && (await this.cache.read(asset.name)); let cacheMiss = false; if (!processed || asset.shouldInvalidate(processed.cacheData)) { @@ -503,7 +503,8 @@ class Bundler extends EventEmitter { cacheMiss = true; } - asset.buildTime = Date.now() - startTime; + asset.endTime = Date.now(); + asset.buildTime = asset.endTime - asset.startTime; asset.generated = processed.generated; asset.hash = processed.hash;