> For AI agents: the complete documentation index is available at https://rsdoctor.rs/llms.txt, the full documentation bundle is available at https://rsdoctor.rs/llms-full.txt.

# Compile overall

## Overview

On the homepage of **Rsdoctor**, there is a card called `Compile Overall` that provides information about the **compilation process** of the current project. The content is shown in the following image:

![](https://assets.rspack.rs/others/assets/rsdoctor/compile-overall-1.jpg)
:::tip
For each compilation phase, if the time data is displayed in blue
, it means that you can click to view the detailed time breakdown
.
:::
## Glossary

The following table explains the meaning and code implementation of each phase in the card:

| Phase Name                               | Description                                                                            | Code Implementation                                                                                                                                                                           |
| ---------------------------------------- | -------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <b><i>Bootstrap -> BeforeCompile</i></b> | Represents the time taken from project startup to before compilation starts            | <ul><li>Reports [process.uptime()](https://nodejs.org/dist/latest-v22.x/docs/api/process.html#processuptime) as the <b>duration</b> when **compiler.hooks.beforeCompile** is called</li></ul> |
| <b><i>Compile</i></b>                    | Represents the total time taken for the project compilation                            | <ul><li>The <b>start time</b> is the time when **compiler.hooks.beforeCompile** is called, and the <b>end time</b> is the time when **compiler.hooks.afterCompile** is called</li></ul>       |
| <b><i>AfterCompile -> Done</i></b>       | Represents the time taken from compilation completion to the end of the entire process | <ul><li>The <b>start time</b> is the time when **compiler.hooks.afterCompile** is called, and the <b>end time</b> is the time when **compiler.hooks.done** is called</li></ul>                |
| <b><i>Minify</i></b>                     | Total time spent by plugins processing output assets, including minification           | Adds up the recorded durations of plugin callbacks on **compilation.hooks.processAssets**                                                                                                     |

## Usage instructions

### Bootstrap -> BeforeCompile details

By **clicking on the data of the `Bootstrap -> BeforeCompile` phase**, a popup will appear on the page, as shown in the following image:

![](https://assets.rspack.rs/others/assets/rsdoctor/compile-overall-boostrap.jpg)
The popup mainly contains a chart:

- The **x-axis** represents **time**
- The **y-axis** represents all the **hooks** that have been **tapped by plugins** before the **compiler.hooks.beforeCompile** is called
- The data in the chart represents the **start and end time** of each **hook**.

Hovering over a data point in the chart will display the following information in a tooltip:

- **hook**: the name of the hook
- **tap name**: the name value when [.tap](https://github.com/webpack/tapable#hookhookmap-interface) is called
- **start**: the start time
- **end**: the end time
- **duration**: the duration, calculated as `end - start`

### Compile phase

In this section, you can navigate to "Compile Analysis" -> "Loader Analysis" -> [**"Loader Timeline"**](https://rsdoctor.rs/guide/usage/loaders-timeline.md) in the navigation bar to view the timeline of loader compilation time.

### AfterCompile -> done details

By **clicking on the data of the `AfterCompile -> Done` phase**, a popup will appear on the page, as shown in the following image:

![](https://assets.rspack.rs/others/assets/rsdoctor/compile-overall-aftercompile-1.jpg)
The popup mainly contains a data table that shows the relevant data of the calls. The field meanings are as follows:

- **Plugin Tap Name**: the name value when [.tap](https://github.com/webpack/tapable#hookhookmap-interface) is called
- **Hook**: the name of the hook
- **calls**: the number of times the hook is called
- **duration(total)**: the total time of all the calls

Scrolling down the page will show the corresponding chart:

![](https://assets.rspack.rs/others/assets/rsdoctor/compile-overall-aftercompile-2.jpg)
The chart shows:

- The **x-axis** represents **time**
- The **y-axis** represents all the **hooks** that have been **tapped by plugins** between **compiler.hooks.afterCompile** and **compiler.hooks.done**
- The data in the chart represents the **start and end time** of each **hook**.

Hovering over a data point in the chart will display the following information in a tooltip:

- **hook**: the name of the hook
- **tap name**: the name value when [.tap](https://github.com/webpack/tapable#hookhookmap-interface) is called
- **start**: the start time
- **end**: the end time
- **duration**: the duration, calculated as `end - start`

### Minify details

When code minification (`optimization.minimize`) is enabled, the report shows `Minify` if timing data is available for the relevant plugins. Click `detail` next to it to see how long each plugin took and when it ran.

Plugin timing data is collected by [`features.plugins`](https://rsdoctor.rs/config/options/features.md), which is enabled by default.

| <img src="https://assets.rspack.rs/others/assets/rsdoctor/compile-overall-minify-1.jpg" /> | <img src="https://assets.rspack.rs/others/assets/rsdoctor/compile-overall-minify-2.jpg" /> |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |

## Reference documentation

- [**Rspack Hooks**](https://rspack.rs/api/plugin-api/compiler-hooks#beforecompile)
