diff options
author | Valentin Rothberg <rothberg@redhat.com> | 2021-09-28 17:01:22 +0200 |
---|---|---|
committer | Valentin Rothberg <rothberg@redhat.com> | 2021-09-28 17:18:02 +0200 |
commit | 5d6ea90e756cd48c90d9549d25c0150c9bb5c50c (patch) | |
tree | ffe239b2f0456df0489bf99dfc9d6399bb8b3561 /libpod/pod.go | |
parent | 381ab48c2586a96932701a1fe270ebd2c32a04d4 (diff) | |
download | podman-5d6ea90e756cd48c90d9549d25c0150c9bb5c50c.tar.gz podman-5d6ea90e756cd48c90d9549d25c0150c9bb5c50c.tar.bz2 podman-5d6ea90e756cd48c90d9549d25c0150c9bb5c50c.zip |
libpod: do not call (*container).Config()
Access the container's config field directly inside of libpod instead of
calling `Config()` which in turn creates expensive JSON deep copies.
Accessing the field directly drops memory consumption of a simple
`podman run --rm busybox true` from 1245kB to 410kB.
[NO TESTS NEEDED]
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Diffstat (limited to 'libpod/pod.go')
-rw-r--r-- | libpod/pod.go | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/libpod/pod.go b/libpod/pod.go index e4516b354..c0b0a974b 100644 --- a/libpod/pod.go +++ b/libpod/pod.go @@ -164,8 +164,7 @@ func (p *Pod) PidMode() string { if err != nil { return "" } - conf := infra.Config() - ctrSpec := conf.Spec + ctrSpec := infra.config.Spec if ctrSpec != nil && ctrSpec.Linux != nil { for _, ns := range ctrSpec.Linux.Namespaces { if ns.Type == specs.PIDNamespace { @@ -186,8 +185,7 @@ func (p *Pod) UserNSMode() string { if err != nil { return "" } - conf := infra.Config() - ctrSpec := conf.Spec + ctrSpec := infra.config.Spec if ctrSpec != nil && ctrSpec.Linux != nil { for _, ns := range ctrSpec.Linux.Namespaces { if ns.Type == specs.UserNamespace { |