@@ -21,10 +21,10 @@ static struct tr2_dst tr2dst_perf = { TR2_SYSENV_PERF, 0, 0, 0 };
21
21
*/
22
22
static int tr2env_perf_be_brief ;
23
23
24
- #define TR2FMT_PERF_FL_WIDTH (50 )
24
+ #define TR2FMT_PERF_FL_WIDTH (28 )
25
25
#define TR2FMT_PERF_MAX_EVENT_NAME (12)
26
- #define TR2FMT_PERF_REPO_WIDTH (4 )
27
- #define TR2FMT_PERF_CATEGORY_WIDTH (10 )
26
+ #define TR2FMT_PERF_REPO_WIDTH (3 )
27
+ #define TR2FMT_PERF_CATEGORY_WIDTH (12 )
28
28
29
29
#define TR2_DOTS_BUFFER_SIZE (100)
30
30
#define TR2_INDENT (2)
@@ -79,17 +79,36 @@ static void perf_fmt_prepare(const char *event_name,
79
79
80
80
if (!tr2env_perf_be_brief ) {
81
81
struct tr2_tbuf tb_now ;
82
+ size_t fl_end_col ;
82
83
83
84
tr2_tbuf_local_time (& tb_now );
84
85
strbuf_addstr (buf , tb_now .buf );
85
86
strbuf_addch (buf , ' ' );
86
87
87
- if (file && * file )
88
- strbuf_addf (buf , "%s:%d " , file , line );
89
- while (buf -> len < TR2FMT_PERF_FL_WIDTH )
88
+ fl_end_col = buf -> len + TR2FMT_PERF_FL_WIDTH ;
89
+
90
+ if (file && * file ) {
91
+ struct strbuf buf_fl = STRBUF_INIT ;
92
+
93
+ strbuf_addf (& buf_fl , "%s:%d" , file , line );
94
+
95
+ if (buf_fl .len <= TR2FMT_PERF_FL_WIDTH )
96
+ strbuf_addbuf (buf , & buf_fl );
97
+ else {
98
+ size_t avail = TR2FMT_PERF_FL_WIDTH - 3 ;
99
+ strbuf_addstr (buf , "..." );
100
+ strbuf_add (buf ,
101
+ & buf_fl .buf [buf_fl .len - avail ],
102
+ avail );
103
+ }
104
+
105
+ strbuf_release (& buf_fl );
106
+ }
107
+
108
+ while (buf -> len < fl_end_col )
90
109
strbuf_addch (buf , ' ' );
91
110
92
- strbuf_addstr (buf , "| " );
111
+ strbuf_addstr (buf , " | " );
93
112
}
94
113
95
114
strbuf_addf (buf , "d%d | " , tr2_sid_depth ());
@@ -102,7 +121,7 @@ static void perf_fmt_prepare(const char *event_name,
102
121
strbuf_addf (buf , "r%d " , repo -> trace2_repo_id );
103
122
while (buf -> len < len )
104
123
strbuf_addch (buf , ' ' );
105
- strbuf_addstr (buf , "| " );
124
+ strbuf_addstr (buf , " | " );
106
125
107
126
if (p_us_elapsed_absolute )
108
127
strbuf_addf (buf , "%9.6f | " ,
@@ -116,8 +135,8 @@ static void perf_fmt_prepare(const char *event_name,
116
135
else
117
136
strbuf_addf (buf , "%9s | " , " " );
118
137
119
- strbuf_addf (buf , "%-*s | " , TR2FMT_PERF_CATEGORY_WIDTH ,
120
- (category ? category : "" ));
138
+ strbuf_addf (buf , "%-*.* s | " , TR2FMT_PERF_CATEGORY_WIDTH ,
139
+ TR2FMT_PERF_CATEGORY_WIDTH , (category ? category : "" ));
121
140
122
141
if (ctx -> nr_open_regions > 0 ) {
123
142
int len_indent = TR2_INDENT_LENGTH (ctx );
@@ -166,6 +185,7 @@ static void fn_start_fl(const char *file, int line,
166
185
struct strbuf buf_payload = STRBUF_INIT ;
167
186
168
187
sq_quote_argv_pretty (& buf_payload , argv );
188
+ strbuf_trim (& buf_payload );
169
189
170
190
perf_io_write_fl (file , line , event_name , NULL , & us_elapsed_absolute ,
171
191
NULL , NULL , & buf_payload );
@@ -435,6 +455,7 @@ static void fn_region_enter_printf_va_fl(const char *file, int line,
435
455
if (label )
436
456
strbuf_addf (& buf_payload , "label:%s " , label );
437
457
maybe_append_string_va (& buf_payload , fmt , ap );
458
+ strbuf_rtrim (& buf_payload );
438
459
439
460
perf_io_write_fl (file , line , event_name , repo , & us_elapsed_absolute ,
440
461
NULL , category , & buf_payload );
@@ -452,6 +473,7 @@ static void fn_region_leave_printf_va_fl(
452
473
if (label )
453
474
strbuf_addf (& buf_payload , "label:%s " , label );
454
475
maybe_append_string_va (& buf_payload , fmt , ap );
476
+ strbuf_rtrim (& buf_payload );
455
477
456
478
perf_io_write_fl (file , line , event_name , repo , & us_elapsed_absolute ,
457
479
& us_elapsed_region , category , & buf_payload );
0 commit comments