DockerCLI/cli/command/container
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
..
testdata Fix flaky TestContainerList tests 2022-03-28 20:37:06 +02:00
attach.go completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
attach_test.go vendor: github.com/docker/docker 2ed904cad7055847796433cc56ef1d1de0da868c 2022-04-30 12:01:37 +02:00
client_test.go vendor: github.com/docker/docker 2ed904cad7055847796433cc56ef1d1de0da868c 2022-04-30 12:01:37 +02:00
cmd.go Update gometalinter 2017-10-26 12:21:02 -04:00
commit.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
cp.go Add progress bar to copy into and from container 2021-04-24 13:24:19 +02:00
cp_test.go cli/command/container: remove deprecated io/ioutil 2022-02-25 15:36:23 +01:00
create.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
create_test.go vendor: github.com/docker/docker 2ed904cad7055847796433cc56ef1d1de0da868c 2022-04-30 12:01:37 +02:00
diff.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
exec.go completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
exec_test.go cli/command/container: remove deprecated io/ioutil 2022-02-25 15:36:23 +01:00
export.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
export_test.go cli/command/container: remove deprecated io/ioutil 2022-02-25 15:36:23 +01:00
formatter_diff.go formatter package heavy refactoring 2018-10-23 17:05:44 +02:00
formatter_diff_test.go formatter: reduce minimum width for columns in table-view 2020-08-31 16:31:15 +02:00
formatter_stats.go cli/command/container: some small performance optimizations for formatting stats 2022-05-13 21:38:06 +02:00
formatter_stats_test.go cli/command/container: add BenchmarkStatsFormat() 2022-05-13 21:26:38 +02:00
hijack.go update docker, replace github.com/docker/pkg/term, github.com/docker/pkg/mount 2020-04-22 17:16:13 +02:00
inspect.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
kill.go docker kill: don't set default signal on the client side 2022-05-13 10:10:17 +02:00
list.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
list_test.go cli/command/container: remove deprecated io/ioutil 2022-02-25 15:36:23 +01:00
logs.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
logs_test.go cli/command/container: remove deprecated io/ioutil 2022-02-25 15:36:23 +01:00
opts.go Handle relative source mounts 2022-03-14 15:18:48 +01:00
opts_test.go cli/command/container: remove deprecated io/ioutil 2022-02-25 15:36:23 +01:00
pause.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
port.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
port_test.go cli/command/container: remove deprecated io/ioutil 2022-02-25 15:36:23 +01:00
prune.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
rename.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
restart.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
rm.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
rm_test.go fix race condition in TestRemoveForce 2022-03-31 22:54:17 +02:00
run.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
run_test.go vendor: github.com/docker/docker 2ed904cad7055847796433cc56ef1d1de0da868c 2022-04-30 12:01:37 +02:00
signals.go Fix typo 2021-11-05 18:10:51 +01:00
signals_test.go replace docker/pkg/signal with github.com/moby/sys/signal 2021-08-09 19:15:46 +02:00
signals_unix.go gofmt with go1.17 2022-03-26 20:21:00 +01:00
signals_unix_test.go gofmt with go1.17 2022-03-26 20:21:00 +01:00
signals_windows.go Ignore SIGURG on Darwin too 2021-05-24 19:37:53 +01:00
start.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
stats.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
stats_helpers.go calculateMemUsageUnixNoCache: subtract total_inactive_file, not cache 2020-04-11 08:13:21 +09:00
stats_helpers_test.go calculateMemUsageUnixNoCache: subtract total_inactive_file, not cache 2020-04-11 08:13:21 +09:00
stats_unit_test.go use char to check blockIO type 2019-03-11 10:01:22 +08:00
stop.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
top.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
tty.go Retry initializing TTY size a bit more 2022-05-02 14:23:07 +02:00
tty_test.go Sleep for 1.5 seconds before looking at the resize error 2022-05-02 17:01:01 +02:00
unpause.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
update.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
utils.go Switch from x/net/context to context 2018-05-11 16:49:43 -07:00
utils_test.go vendor: github.com/docker/docker 2ed904cad7055847796433cc56ef1d1de0da868c 2022-04-30 12:01:37 +02:00
wait.go Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00