From 242f220bc0712c75041cdcabf62d8225cc154ebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E6=9E=9C=E5=B1=B1=E5=A4=A7=E5=9C=A3?= <316783812@qq.com> Date: Wed, 5 Jul 2023 02:00:20 +0800 Subject: [PATCH 1/2] chore: add a time-consuming log for building --- scripts/build.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/build.js b/scripts/build.js index 75a619046be..7c59dc254e1 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -27,6 +27,7 @@ import { cpus } from 'node:os' import { createRequire } from 'node:module' import { targets as allTargets, fuzzyMatchTarget } from './utils.js' import { scanEnums } from './const-enum.js' +import { start } from 'node:repl' const require = createRequire(import.meta.url) const args = minimist(process.argv.slice(2)) @@ -45,6 +46,7 @@ run() async function run() { const removeCache = scanEnums() try { + const startTime = performance.now() const resolvedTargets = targets.length ? fuzzyMatchTarget(targets, buildAllMatching) : allTargets @@ -64,7 +66,11 @@ async function run() { stdio: 'inherit' } ) + console.log() } + console.log( + `build in ${((performance.now() - startTime) / 1000).toFixed(2)} s` + ) } finally { removeCache() } @@ -76,15 +82,15 @@ async function buildAll(targets) { async function runParallel(maxConcurrency, source, iteratorFn) { const ret = [] - const executing = [] + const executing = new Set() for (const item of source) { const p = Promise.resolve().then(() => iteratorFn(item, source)) ret.push(p) if (maxConcurrency <= source.length) { - const e = p.then(() => executing.splice(executing.indexOf(e), 1)) - executing.push(e) - if (executing.length >= maxConcurrency) { + const e = p.then(() => executing.delete(e)) + executing.add(e) + if (executing.size >= maxConcurrency) { await Promise.race(executing) } } From 236c5f1cb962e534b670cfbe89f5ffe475d2554a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E6=9E=9C=E5=B1=B1=E5=A4=A7=E5=9C=A3?= <316783812@qq.com> Date: Wed, 5 Jul 2023 02:01:24 +0800 Subject: [PATCH 2/2] chore: remove unused import --- scripts/build.js | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/build.js b/scripts/build.js index 7c59dc254e1..e4e542b4e12 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -27,7 +27,6 @@ import { cpus } from 'node:os' import { createRequire } from 'node:module' import { targets as allTargets, fuzzyMatchTarget } from './utils.js' import { scanEnums } from './const-enum.js' -import { start } from 'node:repl' const require = createRequire(import.meta.url) const args = minimist(process.argv.slice(2))