Skip to content

Commit 2e2c05a

Browse files
committed
add colors (part 3)
1 parent f3919b2 commit 2e2c05a

File tree

1 file changed

+53
-43
lines changed

1 file changed

+53
-43
lines changed

src/pcm.cpp

Lines changed: 53 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -114,47 +114,47 @@ void print_basic_metrics(const PCM * m, const State & state1, const State & stat
114114
case 2:
115115
if (m->isCoreCStateResidencySupported(0))
116116
{
117-
cout << " " << getCoreCStateResidency(0, state1, state2);
117+
cout << setNextColor() << " " << getCoreCStateResidency(0, state1, state2);
118118
}
119-
cout << " " << getIPC(state1, state2);
119+
cout << setNextColor() << " " << getIPC(state1, state2);
120120
if (m->isActiveRelativeFrequencyAvailable())
121121
{
122-
cout << " " << getActiveAverageFrequency(state1, state2)/1e9;
122+
cout << setNextColor() << " " << getActiveAverageFrequency(state1, state2)/1e9;
123123
}
124124
break;
125125
default:
126-
cout << " " << getExecUsage(state1, state2) <<
127-
" " << getIPC(state1, state2) <<
128-
" " << getRelativeFrequency(state1, state2);
126+
cout << setNextColor() << " " << getExecUsage(state1, state2) <<
127+
setNextColor() << " " << getIPC(state1, state2) <<
128+
setNextColor() << " " << getRelativeFrequency(state1, state2);
129129
if (m->isActiveRelativeFrequencyAvailable())
130-
cout << " " << getActiveRelativeFrequency(state1, state2);
130+
cout << setNextColor() << " " << getActiveRelativeFrequency(state1, state2);
131131
}
132132
if (m->isL3CacheMissesAvailable())
133-
cout << " " << unit_format(getL3CacheMisses(state1, state2));
133+
cout << setNextColor() << " " << unit_format(getL3CacheMisses(state1, state2));
134134
if (m->isL2CacheMissesAvailable())
135-
cout << " " << unit_format(getL2CacheMisses(state1, state2));
135+
cout << setNextColor() << " " << unit_format(getL2CacheMisses(state1, state2));
136136
if (m->isL3CacheHitRatioAvailable())
137-
cout << " " << getL3CacheHitRatio(state1, state2);
137+
cout << setNextColor() << " " << getL3CacheHitRatio(state1, state2);
138138
if (m->isL2CacheHitRatioAvailable())
139-
cout << " " << getL2CacheHitRatio(state1, state2);
139+
cout << setNextColor() << " " << getL2CacheHitRatio(state1, state2);
140140
cout.precision(4);
141141
if (m->isL3CacheMissesAvailable())
142-
cout << " " << double(getL3CacheMisses(state1, state2)) / getInstructionsRetired(state1, state2);
142+
cout << setNextColor() << " " << double(getL3CacheMisses(state1, state2)) / getInstructionsRetired(state1, state2);
143143
if (m->isL2CacheMissesAvailable())
144-
cout << " " << double(getL2CacheMisses(state1, state2)) / getInstructionsRetired(state1, state2);
144+
cout << setNextColor() << " " << double(getL2CacheMisses(state1, state2)) / getInstructionsRetired(state1, state2);
145145
cout.precision(2);
146146
}
147147

148148
template <class State>
149149
void print_other_metrics(const PCM * m, const State & state1, const State & state2)
150150
{
151151
if (m->L3CacheOccupancyMetricAvailable())
152-
cout << " " << setw(6) << l3cache_occ_format(getL3CacheOccupancy(state2));
152+
cout << setNextColor() << " " << setw(6) << l3cache_occ_format(getL3CacheOccupancy(state2));
153153
if (m->CoreLocalMemoryBWMetricAvailable())
154-
cout << " " << setw(6) << getLocalMemoryBW(state1, state2);
154+
cout << setNextColor() << " " << setw(6) << getLocalMemoryBW(state1, state2);
155155
if (m->CoreRemoteMemoryBWMetricAvailable())
156-
cout << " " << setw(6) << getRemoteMemoryBW(state1, state2);
157-
cout << " " << temp_format(state2.getThermalHeadroom()) << "\n";
156+
cout << setNextColor() << " " << setw(6) << getRemoteMemoryBW(state1, state2);
157+
cout << setNextColor() << " " << temp_format(state2.getThermalHeadroom()) << "\n";
158158
}
159159

160160
void print_output(PCM * m,
@@ -245,39 +245,41 @@ void print_output(PCM * m,
245245
case 2:
246246
if (m->isCoreCStateResidencySupported(0))
247247
{
248-
cout << " UTIL |";
248+
cout << setNextColor() << " UTIL |";
249249
}
250-
cout << " IPC |";
250+
cout << setNextColor() << " IPC |";
251251
if (m->isActiveRelativeFrequencyAvailable())
252252
{
253-
cout << " CFREQ |";
253+
cout << setNextColor() << " CFREQ |";
254254
}
255255
break;
256256
default:
257-
cout << " EXEC | IPC | FREQ |";
257+
cout << setNextColor() << " EXEC |" << setNextColor() << " IPC |" << setNextColor() <<" FREQ |";
258258
if (m->isActiveRelativeFrequencyAvailable())
259-
cout << " AFREQ |";
259+
cout << setNextColor() << " AFREQ |";
260260
}
261261
if (m->isL3CacheMissesAvailable())
262-
cout << " L3MISS |";
262+
cout << setNextColor() << " L3MISS |";
263263
if (m->isL2CacheMissesAvailable())
264-
cout << " L2MISS |";
264+
cout << setNextColor() << " L2MISS |";
265265
if (m->isL3CacheHitRatioAvailable())
266-
cout << " L3HIT |";
266+
cout << setNextColor() << " L3HIT |";
267267
if (m->isL2CacheHitRatioAvailable())
268-
cout << " L2HIT |";
268+
cout << setNextColor() << " L2HIT |";
269269
if (m->isL3CacheMissesAvailable())
270-
cout << " L3MPI |";
270+
cout << setNextColor() << " L3MPI |";
271271
if (m->isL2CacheMissesAvailable())
272-
cout << " L2MPI | ";
272+
cout << setNextColor() << " L2MPI | ";
273273
if (m->L3CacheOccupancyMetricAvailable())
274-
cout << " L3OCC |";
274+
cout << setNextColor() << " L3OCC |";
275275
if (m->CoreLocalMemoryBWMetricAvailable())
276-
cout << " LMB |";
276+
cout << setNextColor() << " LMB |";
277277
if (m->CoreRemoteMemoryBWMetricAvailable())
278-
cout << " RMB |";
278+
cout << setNextColor() << " RMB |";
279279

280-
cout << " TEMP\n\n";
280+
cout << setNextColor() << " TEMP\n\n";
281+
282+
cout << resetColor();
281283

282284
if (show_core_output)
283285
{
@@ -295,6 +297,7 @@ void print_output(PCM * m,
295297

296298
print_basic_metrics(m, cstates1[i], cstates2[i], metricVersion);
297299
print_other_metrics(m, cstates1[i], cstates2[i]);
300+
cout << resetColor();
298301
}
299302
}
300303
if (show_socket_output)
@@ -307,6 +310,7 @@ void print_output(PCM * m,
307310
cout << " SKT " << setw(2) << i;
308311
print_basic_metrics(m, sktstate1[i], sktstate2[i], metricVersion);
309312
print_other_metrics(m, sktstate1[i], sktstate2[i]);
313+
cout << resetColor();
310314
}
311315
}
312316
}
@@ -322,24 +326,27 @@ void print_output(PCM * m,
322326
print_basic_metrics(m, sstate1, sstate2, metricVersion);
323327

324328
if (m->L3CacheOccupancyMetricAvailable())
325-
cout << " N/A ";
329+
cout << setNextColor() <<" N/A ";
326330
if (m->CoreLocalMemoryBWMetricAvailable())
327-
cout << " N/A ";
331+
cout << setNextColor() <<" N/A ";
328332
if (m->CoreRemoteMemoryBWMetricAvailable())
329-
cout << " N/A ";
333+
cout << setNextColor() <<" N/A ";
330334

331-
cout << " N/A\n";
332-
cout << "\n Instructions retired: " << unit_format(getInstructionsRetired(sstate1, sstate2)) << " ; Active cycles: " << unit_format(getCycles(sstate1, sstate2)) << " ; Time (TSC): " << unit_format(getInvariantTSC(cstates1[0], cstates2[0])) << "ticks ; C0 (active,non-halted) core residency: " << (getCoreCStateResidency(0, sstate1, sstate2)*100.) << " %\n";
335+
cout << setNextColor() << " N/A\n";
336+
cout << resetColor();
337+
cout << setNextColor() <<"\n Instructions retired: " << unit_format(getInstructionsRetired(sstate1, sstate2)) << " ;"
338+
<< setNextColor() <<" Active cycles: " << unit_format(getCycles(sstate1, sstate2)) << " ;"
339+
<< setNextColor() <<" Time (TSC): " << unit_format(getInvariantTSC(cstates1[0], cstates2[0])) << "ticks ;"
340+
<< setNextColor() << " C0 (active,non-halted) core residency: " << (getCoreCStateResidency(0, sstate1, sstate2)*100.) << " %\n";
333341
cout << "\n";
334-
cout << setColor(ASCII_GREEN);
335342
for (int s = 1; s <= PCM::MAX_C_STATE; ++s)
336343
{
337344
if (m->isCoreCStateResidencySupported(s))
338345
{
339-
std::cout << " C" << s << " core residency: " << (getCoreCStateResidency(s, sstate1, sstate2)*100.) << " %;";
346+
std::cout << setNextColor() << " C" << s << " core residency: " << (getCoreCStateResidency(s, sstate1, sstate2)*100.) << " %;";
340347
}
341348
}
342-
cout << "\n";
349+
cout << "\n" ;
343350
std::vector<StackedBarItem> CoreCStateStackedBar, PackageCStateStackedBar;
344351
for (int s = 0; s <= PCM::MAX_C_STATE; ++s)
345352
{
@@ -352,13 +359,14 @@ void print_output(PCM * m,
352359
}
353360
if (m->isPackageCStateResidencySupported(s))
354361
{
355-
std::cout << " C" << s << " package residency: " << (getPackageCStateResidency(s, sstate1, sstate2)*100.) << " %;";
362+
std::cout << setNextColor() << " C" << s << " package residency: " << (getPackageCStateResidency(s, sstate1, sstate2)*100.) << " %;";
356363
PackageCStateStackedBar.push_back(StackedBarItem(getPackageCStateResidency(s, sstate1, sstate2), "", fill));
357364
}
358365
}
359-
cout << "\n";
366+
cout << "\n" << resetColor() << setColor(ASCII_BRIGHT_GREEN);
360367

361368
drawStackedBar(" Core C-state distribution", CoreCStateStackedBar, 80);
369+
cout << setColor(ASCII_GREEN);
362370
drawStackedBar(" Package C-state distribution", PackageCStateStackedBar, 80);
363371

364372
cout << resetColor();
@@ -405,7 +413,7 @@ void print_output(PCM * m,
405413
#endif
406414
}
407415

408-
cout << setColor(ASCII_BRIGHT_CYAN);
416+
cout << setColor(ASCII_CYAN);
409417

410418
if (show_socket_output)
411419
{
@@ -455,6 +463,8 @@ void print_output(PCM * m,
455463
cout << "Total " << m->xPI() << " incoming data traffic: " << unit_format(getAllIncomingQPILinkBytes(sstate1, sstate2)) << " " << m->xPI() << " data traffic/Memory controller traffic: " << getQPItoMCTrafficRatio(sstate1, sstate2) << "\n";
456464
}
457465

466+
cout << setColor(ASCII_BRIGHT_CYAN);
467+
458468
if (show_socket_output)
459469
{
460470
if (m->getNumSockets() > 1 && (m->outgoingQPITrafficMetricsAvailable())) // QPI info only for multi socket systems

0 commit comments

Comments
 (0)