96e23c415253cd3f5dd77181debec9d02e27ff2a
The mountinfo parser implemented via `fmt.Sscanf()` is slower than the one using `strings.Split()` and `strconv.Atoi()`. This rewrite helps to speed it up to a factor of 8x, here is a result from go bench: > BenchmarkParsingScanf-4 300 22294112 ns/op > BenchmarkParsingSplit-4 3000 2780703 ns/op I tried other approaches, such as using `fmt.Sscanf()` for the first three (integer) fields and `strings.Split()` for the rest, but it slows things down considerably: > BenchmarkParsingMixed-4 1000 8827058 ns/op Note the old code uses `fmt.Sscanf`, when a linear search for '-' field, when a split for the last 3 fields. The new code relies on a single split. I have also added more comments to aid in future development. Finally, the test data is fixed to now have white space before the first field. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com> Upstream-commit: c611f18a7f16d8aa878a5a5c7537d23a0937c40a Component: engine
Description
No description provided
Languages
Go
92%
Shell
5.5%
Dockerfile
1.1%
Go-Checksums
0.9%
Makefile
0.3%
Other
0.2%