For AI agents: the complete documentation index is available at /next/llms.txt, the full documentation bundle is available at /next/llms-full.txt, and this page is available as Markdown at /next/rspeedy/build-profiling.md.
Rspeedy logo
Rspeedy
  • English
  • Build Profiling

    Performing a performance analysis can help you identify performance bottlenecks in your project, allowing for targeted optimization.

    Using Rsdoctor

    Rsdoctor is a build analyser that can visually display the compilation time of each loaders and plugins.

    Please refer to Use Rsdoctor for more information.

    Node.js Profiling

    When Rspeedy executes a build, you can use Node.js profiling to analyze the JavaScript execution, which helps to identify performance bottlenecks.

    For example, to perform the CPU profiling analysis, run the following command in the root directory of your project:

    #dev
    node --cpu-prof ./node_modules/@lynx-js/rspeedy/bin/rspeedy.js dev
    
    # build
    node --cpu-prof ./node_modules/@lynx-js/rspeedy/bin/rspeedy.js build

    The above commands will generate a *.cpuprofile file. We can use speedscope to visualize this file:

    # Install speedscope
    npm install -g speedscope
    
    # View cpuprofile content
    # Replace the name with the local file name
    speedscope CPU.date.000000.00000.0.001.cpuprofile

    Rspack profiling

    Rspeedy supports the use of the RSPACK_PROFILE environment variable for Rspack build performance profiling.

    # dev
    RSPACK_PROFILE=ALL rspeedy dev
    
    # build
    RSPACK_PROFILE=ALL rspeedy build

    This command will generate a rspack-profile-${timestamp} folder in the dist folder, and it will contain logging.json, trace.json and jscpuprofile.json files:

    • trace.json: The time spent on each phase of the Rust side is recorded at a granular level using tracing and can be viewed using ui.perfetto.dev.
    • jscpuprofile.json: The time spent at each stage on the JavaScript side is recorded at a granular level using Node.js inspector and can be viewed using speedscope.app.
    • logging.json: Includes some logging information that keeps a coarse-grained record of how long each phase of the build took. (Not supported in development environment yet)

    For more information about Rspack build performance analysis usage, please refer to Rspack - Profiling.

    Except as otherwise noted, this work is licensed under a Creative Commons Attribution 4.0 International License, and code samples are licensed under the Apache License 2.0.