]> Cypherpunks repositories - gostls13.git/commit
cmd/cgo: parallelize loadDefines calls
authorMichael Podtserkovskii <michaelpo@meta.com>
Thu, 18 Apr 2024 11:28:13 +0000 (12:28 +0100)
committerGopher Robot <gobot@golang.org>
Tue, 3 Sep 2024 15:39:35 +0000 (15:39 +0000)
commitd555358bf8b4d06c8f54d1c00d15a37c6ccb30f4
tree1ffa443c9d29cf2d0922d744d95df6cfcc31b121
parent3d4daa38a763260e07f4745110f2b5fcbec25126
cmd/cgo: parallelize loadDefines calls

```
export CC="zig cc -target x86_64-linux"
hyperfine '../pkg/tool/darwin_arm64/cgo -objdir /tmp net/cgo_linux.go net/cgo_resnew.go net/cgo_socknew.go net/cgo_unix_cgo.go net/cgo_unix_cgo_res.go'
```

**Before**
```
  Time (mean ± sig):      1.293 s ±  0.017 s    [User: 0.472 s, System: 0.451 s]
  Range (min ... max):    1.263 s ...  1.316 s    10 runs

```

**After**
```
  Time (mean ±sig):     986.5 ms ±  22.6 ms    [User: 487.0 ms, System: 519.5 ms]
  Range (min ... max):   950.7 ms ... 1022.2 ms    10 runs

```

The version after changes is 25% faster for 5 input files (std "net" package).
I also tried to make CC artifictially slower (wrapper with sleep 0.2) and it showes same 25% performance increase.

Change-Id: I7a26fdc8d8a23b0df9bc71d30b96e82e2ddb943b
Reviewed-on: https://go-review.googlesource.com/c/go/+/581336
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
src/cmd/cgo/gcc.go
src/cmd/cgo/main.go