From afba4c7b14f68d589fee2de515075a339689ee95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Tj=C3=A4der?= Date: Sun, 5 Feb 2023 02:07:20 +0100 Subject: [PATCH] Improve build time with Rayon --- xtask/Cargo.toml | 1 + xtask/src/main.rs | 17 +++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index ba0e134b2f..807741af62 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -10,3 +10,4 @@ os_pipe = "1.1.2" clap = { version = "4", features = ["derive"] } env_logger = "0.10.0" log = "0.4.17" +rayon = "1.6.1" diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 47f3980668..01e7934357 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -4,6 +4,7 @@ mod command; use anyhow::bail; use clap::{Parser, Subcommand}; use core::fmt; +use rayon::prelude::*; use std::{ error::Error, ffi::OsString, @@ -308,7 +309,7 @@ fn run_test( examples: &[String], overwrite: bool, ) -> anyhow::Result<()> { - for example in examples { + examples.into_par_iter().for_each(|example| { let cmd = CargoCommand::Build { cargoarg: &Some("--quiet"), example, @@ -316,7 +317,7 @@ fn run_test( features: DEFAULT_FEATURES, mode: BuildMode::Release, }; - arm_example(&cmd, false)?; + arm_example(&cmd, false).unwrap(); let cmd = CargoCommand::Run { cargoarg, @@ -326,8 +327,8 @@ fn run_test( mode: BuildMode::Release, }; - arm_example(&cmd, overwrite)?; - } + arm_example(&cmd, overwrite).unwrap(); + }); Ok(()) } @@ -338,7 +339,7 @@ fn build_and_check_size( examples: &[String], size_arguments: &Option, ) -> anyhow::Result<()> { - for example in examples { + examples.into_par_iter().for_each(|example| { // Make sure the requested example(s) are built let cmd = CargoCommand::Build { cargoarg: &Some("--quiet"), @@ -347,7 +348,7 @@ fn build_and_check_size( features: DEFAULT_FEATURES, mode: BuildMode::Release, }; - arm_example(&cmd, false)?; + arm_example(&cmd, false).unwrap(); let cmd = CargoCommand::Size { cargoarg, @@ -357,8 +358,8 @@ fn build_and_check_size( mode: BuildMode::Release, arguments: size_arguments.clone(), }; - arm_example(&cmd, false)?; - } + arm_example(&cmd, false).unwrap(); + }); Ok(()) }