我很好奇是否存在一个现成的脚本,它将为终极代码大小的跟踪器工具提供一些起点。首先,我希望能够使用各种优化选项为大量交叉编译器目标绘制图形大小,我很想在以后将其放在修订时间轴上。
所以从size
命令输出:
text data bss dec hex filename
1634 0 128 1762 6e2 csv_data.o (ex libs/libxyz.a)
28 0 0 28 1c csv_data_layer.o (ex libs/libxyz.a)
1063 0 0 1063 427 http_parser.o (ex libs/libxyz.a)
1312 0 1024 2336 920 http_queries.o (ex libs/libxyz.a)
8 36 0 44 2c transport.o (ex libs/libxyz.a)
1748 0 3688 5436 153c transport_layer.o (ex libs/libxyz.a)
8 0 0 8 8 misc_allocator.o (ex libs/libxyz.a)
847 108 1 956 3bc misc_err.o (ex libs/libxyz.a)
0 4 0 4 4 misc_globals.o (ex libs/libxyz.a)
273 0 0 273 111 misc_helpers.o (ex libs/libxyz.a)
71 0 4 75 4b misc_printf.o (ex libs/libxyz.a)
1044 0 44 1088 440 misc_time.o (ex libs/libxyz.a)
3724 0 0 3724 e8c xyz.o (ex libs/libxyz.a)
627 0 0 627 273 dummy.o (ex libs/libxyz.a)
8 16 0 24 18 dummy_layer.o (ex libs/libxyz.a)
12395 164 4889 17448 4428 (TOTALS)
当使用各种优化标志(即:-Os
,-O0
,-O1
,-O2
)和各种优化标志编译库时,大多数值都不同交叉编译器(例如:AVR,MSP430,ARMv6,i386),我想使用 gnuplot , d3.js 制作组合图或一组图, matplotlib 或任何其他包。有没有人有一个现成的脚本可以帮助这部分(例如,至少将上面的表格格式转换为CSV,JSON或XML)或一些提供一个体面的可视化示例的学习论文?我不得不承认,使用网络搜索引擎很难找到它。
答案 0 :(得分:2)
以下是使用gnuplot
将数据显示为条形图的可能性。这当然不是最终的可视化,但应该是一个很好的起点。
set style data histogram
set style histogram rowstacked
set style fill solid 1.0 border lc rgb "white"
set xtics rotate 90
set key outside reverse Left
set bmargin 8
plot 'file.dat' using (!(stringcolumn(6) eq "(TOTALS)") ? column(1) : 1/0):xtic(6) title columnheader(1), \
for [i=2:5] '' using (!(stringcolumn(6) eq "(TOTALS)") ? column(i) : 1/0) title columnheader(i)
使用设置set terminal pngcairo size 1000,800
,这会给出
您还必须决定要使用哪些列,因为为每个编译器绘制每个 每个的每个列都会非常混乱。也许你只想绘制尺寸:
set style data histogram
set style histogram clustered
set style fill solid 1.0 noborder
set xtics rotate 90
set key outside reverse Left
set bmargin 8
plot 'file.dat' using (!(stringcolumn(6) eq "(TOTALS)") ? $4 : 1/0):xtic(6) title 'i386', \
'' using (!(stringcolumn(6) eq "(TOTALS)") ? $4*1.2 : 1/0) title 'ARMv6',\
'' using (!(stringcolumn(6) eq "(TOTALS)") ? $4*0.7 : 1/0) title 'AVR'
这给了你:
请注意,冗长的using
语句只是跳过TOTAL
的最后一行。或者,您也可以在生成数据文件时使用head
删除最后一行,或者像这样在运行中删除:
plot '< head -n -1 file.dat' using 4:xtic(6) title 'i386', \
'' using ($4*1.2) title 'ARMv6',\
'' using ($4*0.7) title 'AVR'
当然,对于您的真实数据,您会有类似
的内容plot '< head -n -1 file-i386.dat' using 4:xtic(6) title 'i386', \
'< head -n -1 file-armv6.dat' using ($4*1.2) title 'ARMv6',\
'< head -n -1 file-avr.dat' using ($4*0.7) title 'AVR'
我希望,这可以让您了解不同的可视化可能性。什么是合适的,你必须自己决定。