Skip to content

update to go1.18, and use strings.Cut - #142

Merged
AkihiroSuda merged 5 commits into
moby:mainfrom
thaJeztah:use_strings_cut
Jul 24, 2024
Merged

update to go1.18, and use strings.Cut#142
AkihiroSuda merged 5 commits into
moby:mainfrom
thaJeztah:use_strings_cut

Conversation

@thaJeztah

Copy link
Copy Markdown
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 <github@gone.nl>
it's faster, and uses less allocations.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
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 <github@gone.nl>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
@AkihiroSuda
AkihiroSuda merged commit 617cda3 into moby:mainJul 24, 2024
@thaJeztah
thaJeztah deleted the use_strings_cut branch July 24, 2024 08:06
Sign up for freeto 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

@thaJeztah@AkihiroSuda