From 94aae2832e640b180c4e3118e12ef9fac8cad86e Mon Sep 17 00:00:00 2001 From: Joey Riches Date: Mon, 27 Feb 2023 10:41:34 +0000 Subject: [PATCH] mason/emitter: emit pkgs in parallel Quick n' Dirty Benchmarks glibc : 28s -> 8s curl : 1.17s -> 668ms nano : 451ms -> 311ms Sub task of #41. --- source/mason/build/emitter.d | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/mason/build/emitter.d b/source/mason/build/emitter.d index ed698dbf8d..486c8cbcfc 100644 --- a/source/mason/build/emitter.d +++ b/source/mason/build/emitter.d @@ -69,8 +69,13 @@ public class BuildEmitter void emit(const(string) outputDirectory, Analyser analyser) @system { import std.algorithm : each; + import std.parallelism : parallel; + + foreach(p; packages.values.parallel) + { + emitPackage(outputDirectory, p, analyser); + } - packages.values.each!((p) => emitPackage(outputDirectory, p, analyser)); binaryManifest.write(); jsonManifest.write(); }