Ok thanks all for your suggestions! On Wednesday, May 1, 2024 at 12:15:32 AM UTC+8 seth.b...@microsoft.com wrote:
> If you're running out of memory during C++ compilation tasks, I don't have > any useful suggestions beyond what you've already done. If you only run out > of memory while running multiple linking tasks, you could try setting the > gn argument `concurrent_links` to a smaller value than the default. This > would limit how many linking tasks Ninja attempts to run at the same time, > although it could still run any number of other tasks concurrently with a > linking task. > > But what exactly is the default `concurrent_links` value? That depends on > the platform, memory size, and build configuration; see > https://source.chromium.org/chromium/chromium/src/+/main:build/toolchain/concurrent_links.gni > > . To find out what your default value is, I'd recommend adding > `print(concurrent_links)` to the end of that file and starting a build. If > you're building standalone V8 without the rest of Chromium, your copy of > concurrent_links.gni is in the build/ directory within the V8 repo. > > On Tuesday, April 30, 2024 at 3:56:33 AM UTC-7 Jakob Kummerow wrote: > >> I don't think there's a built-in way to take RAM into account. ninja and >> autoninja both look at the number of CPU cores/threads. >> >> FWIW, with 2 GiB memory per thread (so e.g. 16 GiB on a 4C/8T CPU), I >> haven't had OOM issues on a fairly wide range of machines from laptops to >> workstations. >> >> is_component_build = true may help with linker memory requirements (as >> well as disk space consumption when building multiple targets). >> >> On Tue, Apr 30, 2024 at 9:01 AM Ben Noordhuis <in...@bnoordhuis.nl> >> wrote: >> >>> On Tue, Apr 30, 2024 at 3:56 AM Paul Harris <harr...@gmail.com> wrote: >>> > >>> > Hi, >>> > >>> > I'd like to run Ninja build with as many jobs as I have CPUs. >>> > However, some of the build jobs require a lot of RAM (especially for >>> Debug builds), so I have to reduce the number of jobs artificially, just to >>> keep the number of jobs under the ram limit. >>> > >>> > Is there a clever set of flags or options in the v8 build system that >>> would automatically manage the number of jobs launched based on max RAM? >>> > >>> > Or do people simply learn from the past and set a max job limit for >>> that particular machine? >>> > >>> > Thanks, >>> > Paul >>> >>> It's been my experience that it's really only the link commands that >>> consume lots of memory, not compilation, so I changed the $ld ninja >>> variable from `c++` to `flock c++`, to stop them from running in >>> parallel. >>> >>> -- -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/ec7cbd32-4a06-4cfb-826b-089a8f7d24c3n%40googlegroups.com.