| From | Namhyung Kim <> | Date | Wed, 29 Nov 2023 17:36:30 -0800 | Subject | Re: [PATCH v5 04/50] tools api fs: Switch filename__read_str to use io.h |
| |
On Mon, Nov 27, 2023 at 2:09 PM Ian Rogers <irogers@google.com> wrote: > > filename__read_str has its own string reading code that allocates > memory before reading into it. The memory allocated is sized at BUFSIZ > that is 8kb. Most strings are short and so most of this 8kb is > wasted. > > Refactor io__getline, as io__getdelim, so that the newline character > can be configurable and ignored in the case of filename__read_str. > > Code like build_caches_for_cpu in perf's header.c will read many > strings and hold them in a data structure, in this case multiple > strings per cache level per CPU. Using io.h's io__getline avoids the > wasted memory as strings are temporarily read into a buffer on the > stack before being copied to a buffer that grows 128 bytes at a time > and is never sized larger than the string. > > For a 16 hyperthread system the memory consumption of "perf record > true" is reduced by 180kb, primarily through saving memory when > reading the cache information. > > Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Thanks, Namhyung
|