From 3f342c266e54457edf3aa40e5042b28dcc436a34 Mon Sep 17 00:00:00 2001 From: Konrad Sztyber Date: Fri, 3 Sep 2021 09:54:11 +0200 Subject: [PATCH] scripts/trace: improve line formatting when printing Changed the way a line is formatted to avoid unnecessary operations. This slightly (~5-10%) decreases the runtime when the script is executed on large trace files. Signed-off-by: Konrad Sztyber Change-Id: I5549462d56f866bea99609f746aa53890b98d622 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9442 Tested-by: SPDK CI Jenkins Community-CI: Broadcom CI Reviewed-by: Aleksey Marchuk Reviewed-by: Tomasz Zawadzki Reviewed-by: Jim Harris Reviewed-by: Krzysztof Karas --- scripts/bpf/trace.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/scripts/bpf/trace.py b/scripts/bpf/trace.py index fea3c09d5..ae723dc0b 100755 --- a/scripts/bpf/trace.py +++ b/scripts/bpf/trace.py @@ -446,18 +446,13 @@ class Trace: timestamp = get_us(e.tsc, offset) diff = get_us(e.time, 0) if e.time is not None else None args = ', '.join(self._format_args(e)) - fields = [ - f'{e.lcore:3}', - f'{timestamp:16.3f}', - f'{e.poller:3}' if e.poller is not None else ' ' * 3, - f'{e.tpoint.name:24}', - f'size: {e.size:6}' if e.size else ' ' * (len('size: ') + 6), - f'id: {e.object_id:8}' if e.object_id is not None else None, - f'time: {diff:<8.3f}' if diff is not None else None, - args - ] - print(' '.join([*filter(lambda f: f is not None, fields)]).rstrip()) + print(('{:3} {:16.3f} {:3} {:24} {:12}'.format( + e.lcore, timestamp, e.poller if e.poller is not None else '', + e.tpoint.name, f'size: {e.size}' if e.size else '') + + (f'id: {e.object_id:8} ' if e.object_id is not None else '') + + (f'time: {diff:<8.3f} ' if diff is not None else '') + + args).rstrip()) class SPDKObject: