Skip to content

[et] no-op builds when a target is specified take ~10 to 15 seconds instead of < 0.1 seconds with Ninja directly. #147666

@chinmaygarde

Description

@chinmaygarde

Here, I am building just impeller_unittests with no local changes.

In this instance, it took ~10 seconds but it takes longer if the system is doing almost anything else (like indexing).

$ time et build -c host_debug_unopt_arm64 //flutter/impeller:impeller_unittests 
[2024-05-01T13:03:45.026][macos/host_debug_unopt_arm64: GN]: OK
[2024-05-01T13:03:45.222][macos/host_debug_unopt_arm64: RBE startup]: OK
[2024-05-01T13:03:45.485][macos/host_debug_unopt_arm64: ninja]: OK
[2024-05-01T13:03:45.518][macos/host_debug_unopt_arm64: RBE shutdown]: OK
et build -c host_debug_unopt_arm64 //flutter/impeller:impeller_unittests  23.04s user 9.52s system 331% cpu 9.830 total

The same target with ninja took ~0.1 seconds reliably. I suppose this is short enough that it doesn't matter what the system is doing.

$ time ninja -C ../out/host_debug_unopt_arm64 flutter/impeller:impeller_unittests 
ninja: Entering directory `../out/host_debug_unopt_arm64'
ninja: no work to do.
ninja -C ../out/host_debug_unopt_arm64 flutter/impeller:impeller_unittests  0.17s user 0.07s system 97% cpu 0.241 total

I also found that whatever et is doing in the Dart VM, the priority of background indexing jobs is about the same as that of the thread pool the VM is using. So, after a branch change that kicks off re-indexes, no-op builds frequently take over a minute.

This is on my M1 Max Macbook Pro.
Screenshot 2024-05-01 at 1 09 58 PM

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work liste: engine-toolEngine-specific tooling (i.e. `tools/engine_tool`).e: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.r: fixedIssue is closed as already fixed in a newer versionteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions