Skip to content

Commit 0876491

Browse files
committed
feat($core): debug to see performance
1 parent 43479a2 commit 0876491

File tree

5 files changed

+35
-5
lines changed

5 files changed

+35
-5
lines changed

packages/@vuepress/cli/index.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { chalk } = require('@vuepress/shared-utils')
1+
const { chalk, performance } = require('@vuepress/shared-utils')
22
const semver = require('semver')
33

44
try {
@@ -33,6 +33,8 @@ exports.bootstrap = function ({
3333
const { path, logger, env } = require('@vuepress/shared-utils')
3434
const { dev, build, eject } = require('@vuepress/core')
3535

36+
performance.start()
37+
3638
cli
3739
.version(pkg.version)
3840
.help()

packages/@vuepress/core/lib/build.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33
module.exports = async function build (sourceDir, cliOptions = {}) {
44
process.env.NODE_ENV = 'production'
55

6-
const { path } = require('@vuepress/shared-utils')
76
const webpack = require('webpack')
87
const readline = require('readline')
98
const escape = require('escape-html')
109

11-
const { chalk, fs, logger, env } = require('@vuepress/shared-utils')
10+
const { chalk, fs, path, logger, env, performance } = require('@vuepress/shared-utils')
1211
const prepare = require('./prepare/index')
1312
const createClientConfig = require('./webpack/createClientConfig')
1413
const createServerConfig = require('./webpack/createServerConfig')
@@ -83,6 +82,8 @@ module.exports = async function build (sourceDir, cliOptions = {}) {
8382
// DONE.
8483
const relativeDir = path.relative(cwd, outDir)
8584
logger.success(`${chalk.green('Success!')} Generated static files in ${chalk.cyan(relativeDir)}.\n`)
85+
const { duration } = performance.stop()
86+
logger.debug(`It took a total of ${duration}ms to run the ${chalk.cyan('vuepress build')}.`)
8687

8788
// --- helpers ---
8889

packages/@vuepress/core/lib/webpack/DevLogPlugin.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* Module dependencies.
55
*/
66

7-
const { chalk, logger } = require('@vuepress/shared-utils')
7+
const { chalk, logger, performance } = require('@vuepress/shared-utils')
88

99
/**
1010
* Expose DevLogPlugin class.
@@ -35,7 +35,9 @@ module.exports = class DevLogPlugin {
3535
)
3636
if (isFirst) {
3737
isFirst = false
38-
console.log(`\n${chalk.gray('>')} VuePress dev server listening at ${chalk.cyan(displayUrl)}`)
38+
console.log(`${chalk.gray('>')} VuePress dev server listening at ${chalk.cyan(displayUrl)}`)
39+
const { duration } = performance.stop()
40+
logger.debug(`It took a total of ${duration}ms to run the ${chalk.cyan('vuepress dev')} for the first time.`)
3941
}
4042
})
4143
compiler.hooks.invalid.tap('vuepress-log', clearScreen)

packages/@vuepress/shared-utils/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,5 @@ exports.fallback = require('./lib/fallback')
3434
exports.slugify = require('./lib/slugify')
3535
exports.tryChain = require('./lib/tryChain')
3636
exports.toAbsolutePath = require('./lib/toAbsolutePath')
37+
38+
exports.performance = require('./lib/performance')
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const os = require('os')
2+
3+
class Performance {
4+
constructor () {
5+
this._totalMemory = os.totalmem()
6+
}
7+
8+
start () {
9+
this._startTime = Date.now()
10+
this._startFreeMemory = os.freemem()
11+
}
12+
13+
stop () {
14+
this._endTime = Date.now()
15+
this._endFreeMemory = os.freemem()
16+
return {
17+
duration: this._endTime - this._startTime,
18+
memoryDiff: this._endFreeMemory - this._startFreeMemory
19+
}
20+
}
21+
}
22+
23+
module.exports = new Performance()

0 commit comments

Comments
 (0)