Skip to content

Conversation

@thaJeztah
Copy link
Member

*: update minimum go version to go1.18

This allows us to start using some new features, like strings.Cut

mount: MergeTmpfsOptions : use strings.Cut

it's faster, and uses less allocations.

mountinfo: add "toInt()" utility

mountinfo: GetMountsFromReader: use strings.Cut

It's faster, and reduces 410 allocations (1976 -> 1566).

Before:

go test -v -test.benchmem -count=10 -run ^$ -bench BenchmarkParseMountinfo .
go: downloading golang.org/x/sys v0.1.0
goos: linux
goarch: arm64
pkg: github.com/moby/sys/mountinfo
BenchmarkParseMountinfo
BenchmarkParseMountinfo-10        4405    283442 ns/op  245426 B/op    1976 allocs/op
BenchmarkParseMountinfo-10        4180    258441 ns/op  245425 B/op    1976 allocs/op
BenchmarkParseMountinfo-10        4146    258770 ns/op  245425 B/op    1976 allocs/op
BenchmarkParseMountinfo-10        4180    259924 ns/op  245425 B/op    1976 allocs/op
BenchmarkParseMountinfo-10        4162    263537 ns/op  245425 B/op    1976 allocs/op
BenchmarkParseMountinfo-10        4218    261200 ns/op  245425 B/op    1976 allocs/op
BenchmarkParseMountinfo-10        4746    259271 ns/op  245425 B/op    1976 allocs/op
BenchmarkParseMountinfo-10        4362    265330 ns/op  245425 B/op    1976 allocs/op
BenchmarkParseMountinfo-10        4454    263110 ns/op  245425 B/op    1976 allocs/op
BenchmarkParseMountinfo-10        4134    266847 ns/op  245425 B/op    1976 allocs/op
PASS
ok  github.com/moby/sys/mountinfo 11.653s

After

go test -v -test.benchmem -count=10 -run ^$ -bench BenchmarkParseMountinfo .
go: downloading golang.org/x/sys v0.1.0
goos: linux
goarch: arm64
pkg: github.com/moby/sys/mountinfo
BenchmarkParseMountinfo
BenchmarkParseMountinfo-10        4544    262155 ns/op  225746 B/op    1566 allocs/op
BenchmarkParseMountinfo-10        4447    266108 ns/op  225745 B/op    1566 allocs/op
BenchmarkParseMountinfo-10        4522    246329 ns/op  225745 B/op    1566 allocs/op
BenchmarkParseMountinfo-10        4311    249786 ns/op  225745 B/op    1566 allocs/op
BenchmarkParseMountinfo-10        4612    250989 ns/op  225745 B/op    1566 allocs/op
BenchmarkParseMountinfo-10        4588    249702 ns/op  225745 B/op    1566 allocs/op
BenchmarkParseMountinfo-10        4342    247774 ns/op  225745 B/op    1566 allocs/op
BenchmarkParseMountinfo-10        4530    246963 ns/op  225745 B/op    1566 allocs/op
BenchmarkParseMountinfo-10        4690    248594 ns/op  225745 B/op    1566 allocs/op
BenchmarkParseMountinfo-10        4455    254278 ns/op  225745 B/op    1566 allocs/op
PASS
ok  github.com/moby/sys/mountinfo 11.660s

mountinfo: GetMountsFromReader: inline some assignments

This allows us to start using some new features, like strings.Cut

Signed-off-by: Sebastiaan van Stijn <[email protected]>
it's faster, and uses less allocations.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
It's faster, and reduces 410 allocations (1976 -> 1566).

Before:

    go test -v -test.benchmem -count=10 -run ^$ -bench BenchmarkParseMountinfo .
    go: downloading golang.org/x/sys v0.1.0
    goos: linux
    goarch: arm64
    pkg: github.com/moby/sys/mountinfo
    BenchmarkParseMountinfo
    BenchmarkParseMountinfo-10        4405    283442 ns/op  245426 B/op    1976 allocs/op
    BenchmarkParseMountinfo-10        4180    258441 ns/op  245425 B/op    1976 allocs/op
    BenchmarkParseMountinfo-10        4146    258770 ns/op  245425 B/op    1976 allocs/op
    BenchmarkParseMountinfo-10        4180    259924 ns/op  245425 B/op    1976 allocs/op
    BenchmarkParseMountinfo-10        4162    263537 ns/op  245425 B/op    1976 allocs/op
    BenchmarkParseMountinfo-10        4218    261200 ns/op  245425 B/op    1976 allocs/op
    BenchmarkParseMountinfo-10        4746    259271 ns/op  245425 B/op    1976 allocs/op
    BenchmarkParseMountinfo-10        4362    265330 ns/op  245425 B/op    1976 allocs/op
    BenchmarkParseMountinfo-10        4454    263110 ns/op  245425 B/op    1976 allocs/op
    BenchmarkParseMountinfo-10        4134    266847 ns/op  245425 B/op    1976 allocs/op
    PASS
    ok  github.com/moby/sys/mountinfo 11.653s

After

    go test -v -test.benchmem -count=10 -run ^$ -bench BenchmarkParseMountinfo .
    go: downloading golang.org/x/sys v0.1.0
    goos: linux
    goarch: arm64
    pkg: github.com/moby/sys/mountinfo
    BenchmarkParseMountinfo
    BenchmarkParseMountinfo-10        4544    262155 ns/op  225746 B/op    1566 allocs/op
    BenchmarkParseMountinfo-10        4447    266108 ns/op  225745 B/op    1566 allocs/op
    BenchmarkParseMountinfo-10        4522    246329 ns/op  225745 B/op    1566 allocs/op
    BenchmarkParseMountinfo-10        4311    249786 ns/op  225745 B/op    1566 allocs/op
    BenchmarkParseMountinfo-10        4612    250989 ns/op  225745 B/op    1566 allocs/op
    BenchmarkParseMountinfo-10        4588    249702 ns/op  225745 B/op    1566 allocs/op
    BenchmarkParseMountinfo-10        4342    247774 ns/op  225745 B/op    1566 allocs/op
    BenchmarkParseMountinfo-10        4530    246963 ns/op  225745 B/op    1566 allocs/op
    BenchmarkParseMountinfo-10        4690    248594 ns/op  225745 B/op    1566 allocs/op
    BenchmarkParseMountinfo-10        4455    254278 ns/op  225745 B/op    1566 allocs/op
    PASS
    ok  github.com/moby/sys/mountinfo 11.660s

Signed-off-by: Sebastiaan van Stijn <[email protected]>
@AkihiroSuda AkihiroSuda merged commit 617cda3 into moby:main Jul 24, 2024
@thaJeztah thaJeztah deleted the use_strings_cut branch July 24, 2024 08:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants