Lesson 23 / 25

Performance monitoring and profiling

Measure and improve Webpack build performance.

Build performance metrics

Track build time, bundle size, and load performance. Use --profile flag to generate timing data. speed-measure-webpack-plugin measures each loader and plugin. Chrome DevTools measures runtime performance. Fast builds improve developer experience. Small bundles reduce user load time.

Measure build speed

Use tools to profile your build process.

# Generate timing profile
webpack --profile --json > stats.json

# Analyze with webpack-bundle-analyzer
npx webpack-bundle-analyzer stats.json

# Use speed-measure-webpack-plugin in config
const SpeedMeasurePlugin = require('speed-measure-webpack-plugin');
const smp = new SpeedMeasurePlugin();
module.exports = smp.wrap(config);

Output:

Profile data shows timing for each build step

Optimize slow loaders

Profile to identify bottlenecks. Often babel-loader and ts-loader are slow. Cache loader output with cache-loader. Use parallel-webpack or thread-loader for parallel processing. Exclude node_modules from transpilation when possible.

Quick check

Quick check: How do you measure build performance?

  • Use --profile flag or speed-measure-webpack-plugin.
  • Count the number of files in bundle.
  • Check console logs during build.
Answer

Use --profile flag or speed-measure-webpack-plugin. — The --profile flag and speed-measure-webpack-plugin provide detailed timing information for each build step.