Optimization 图形代码大小
我很好奇是否存在一个现成的脚本,可以为最终的代码大小跟踪工具提供一些起点。首先,我希望能够为许多交叉编译器目标使用各种优化选项来绘制大小图,我很想稍后也将其放在修订时间表上 因此,从Optimization 图形代码大小,optimization,gcc,d3.js,size,gnuplot,Optimization,Gcc,D3.js,Size,Gnuplot,我很好奇是否存在一个现成的脚本,可以为最终的代码大小跟踪工具提供一些起点。首先,我希望能够为许多交叉编译器目标使用各种优化选项来绘制大小图,我很想稍后也将其放在修订时间表上 因此,从size命令获取输出: 文本数据bss dec十六进制文件名 1634 0 128 1762 6e2 csv_data.o(exlibs/libxyz.a) 28 0 0 28 1c csv_data_layer.o(exlibs/libxyz.a) 1063 0 0 1063 427 http_parser.o(e
size
命令获取输出:
文本数据bss dec十六进制文件名
1634 0 128 1762 6e2 csv_data.o(exlibs/libxyz.a)
28 0 0 28 1c csv_data_layer.o(exlibs/libxyz.a)
1063 0 0 1063 427 http_parser.o(exlibs/libxyz.a)
13121010242336920 http_querys.o(exlibs/libxyz.a)
8 36 0 44 2c transport.o(库外/libxyz.a)
1748 0 3688 5436 153c传输层o(exlibs/libxyz.a)
8 0 0 8 8杂项分配器.o(exlibs/libxyz.a)
847 108 1 956 3 BC杂项错误(自由兑换/自由兑换)
0 4 0 4 4 misc_globals.o(自由兑换/自由兑换)
273 0 0 273 111 misc_helpers.o(exlibs/libxyz.a)
71 0 4 75 4b杂项打印文件(自由存盘/自由存盘)
1044 0 44 1088 440杂项时间o(自由兑换/自由兑换)
3724 0 0 3724 e8c xyz.o(库外/libxyz.a)
627 0 0 627 273 dummy.o(自由兑换/自由兑换)
8 16 0 24 18虚拟_layer.o(exlibs/libxyz.a)
123951644889174484428(总计)
当使用各种优化标志(例如:
-Os
、-O0
、-O1
、-O2
)和各种交叉编译器(例如:AVR、MSP430、ARMv6、i386)编译库时,大多数值都是不同的,因此我想使用gnuplot、d3.js、,matplotlib或任何其他软件包。有没有人看过现成的脚本(例如,至少将上述表格格式转换为CSV、JSON或XML)或一些研究论文,其中提供了一个不错的可视化示例?我必须承认,使用web搜索引擎很难找到这一点。这里有一个可能的可视化数据,即使用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)
使用设置设置设置端子pngcairo尺寸1000800
您还必须决定要使用哪些列,因为为每个编译器的每个文件绘制每一列将非常混乱。也许您只想绘制尺寸:
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'
使用4:xtic(6)标题“i386”绘制“
当然,对于你的真实数据,你会有
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'
使用4:xtic(6)标题“i386”绘制“
我希望,这能让你了解不同的可视化可能性。什么可能是合适的,你必须自己决定。D3没有什么“现成的”,但听起来你想要的是一个相当简单的条形图。是的,D3会很好。。。但是其他的绘图工具对我来说也很好;)你看到了吗?这几乎肯定是一种更快的开始方式。