DockerCLI/cli/command
Sebastiaan van Stijn 34dd43bf1b
cli/command/container: some small performance optimizations for formatting stats
Formatting stats runs in a loop to refresh the stats for each container. This
patch makes some small performance improvments by reducing the use of Sprintf
in favor of concatenating strings, and using strconv directly where possible.

Benchmark can be run with:

    GO111MODULE=off go test -test.v -test.bench '^BenchmarkStatsFormat' -test.run '^$' ./cli/command/container/

Before/after:

    BenchmarkStatsFormatOld-8 	    2655	    428064 ns/op	   62432 B/op	    5600 allocs/op
    BenchmarkStatsFormat-8   	    3338	    335822 ns/op	   52832 B/op	    4700 allocs/op

Average of 5 runs;

    benchstat old.txt new.txt
    name           old time/op    new time/op    delta
    StatsFormat-8     432µs ± 1%     344µs ± 5%  -20.42%  (p=0.008 n=5+5)

    name           old alloc/op   new alloc/op   delta
    StatsFormat-8    62.4kB ± 0%    52.8kB ± 0%  -15.38%  (p=0.000 n=5+4)

    name           old allocs/op  new allocs/op  delta
    StatsFormat-8     5.60k ± 0%     4.70k ± 0%  -16.07%  (p=0.008 n=5+5)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-05-13 21:38:06 +02:00
..
builder Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
checkpoint completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
commands remove exec, push, pull, ps, images, info from "legacy" commands 2022-04-08 16:55:39 +02:00
completion Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
config completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
container cli/command/container: some small performance optimizations for formatting stats 2022-05-13 21:38:06 +02:00
context completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
formatter Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
idresolver bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-23 00:28:55 +01:00
image completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
inspect linting: fix incorrectly formatted errors (revive) 2022-03-28 10:37:25 +02:00
manifest cli/registry/client: remove unused RegistryClient.GetTags() 2022-03-30 20:00:34 +02:00
network completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
node Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
plugin completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
registry completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
secret Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
service completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
stack Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
swarm Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
system Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
task linting: fix incorrectly formatted errors (revive) 2022-03-28 10:37:25 +02:00
testdata Dynamically register kubernetes context store endpoint type. 2019-05-20 13:28:11 +01:00
trust linting: fix incorrectly formatted errors (revive) 2022-03-28 10:37:25 +02:00
volume completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
cli.go cli: initializeFromClient(): detect swarm status from ping (if available) 2022-05-02 14:57:57 +02:00
cli_options.go Implement WithDefaultContextStoreConfig() DockerCliOption 2022-03-03 14:47:59 +01:00
cli_options_test.go bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-23 00:28:55 +01:00
cli_test.go cli: initializeFromClient(): detect swarm status from ping (if available) 2022-05-02 14:57:57 +02:00
context.go remove obsolete mutli-orchestrator support 2022-02-22 15:28:12 +01:00
context_test.go remove obsolete mutli-orchestrator support 2022-02-22 15:28:12 +01:00
defaultcontextstore.go remove obsolete mutli-orchestrator support 2022-02-22 15:28:12 +01:00
defaultcontextstore_test.go cli/command: remove deprecated io/ioutil and use t.TempDir() 2022-02-25 15:42:14 +01:00
events_utils.go updated vendoring 2017-09-01 19:41:06 -04:00
registry.go registry: don't call "/info" API endpoint to get default registry 2022-03-15 16:30:42 +01:00
registry_test.go registry: don't call "/info" API endpoint to get default registry 2022-03-15 16:30:42 +01:00
streams.go Extract streams helpers from command package to their own package to remove a cyclic dependency from command to internal/containerizedengine 2019-01-28 14:36:00 +01:00
trust.go Refactor content_trust cli/flags handling 2018-03-08 15:00:43 -05:00
utils.go cli/command: fix documentation of CopyToFile mentioning ioutil 2022-04-08 14:56:48 +02:00
utils_test.go cli/command: remove deprecated io/ioutil and use t.TempDir() 2022-02-25 15:42:14 +01:00