binary instrumentation: 二进制执行文件插桩简介
在二进制层面对执行文件进行插桩,可以摆脱对源码和编译器的依赖,覆盖大部分的代码逻辑。
在二进制层面对执行文件进行插桩,可以摆脱对源码和编译器的依赖,覆盖大部分的代码逻辑。
对于程序的运行性能的影响,除了关注 CPU、算法等,内存操作也是相当重要的。
看到一个尾调用优化的案例,把 Protobuf 解析速度提升了两倍,达到 2+GB/s,简单做了下笔记,详细可以看看原文。
实际上原文也解释了两倍性能提升不只是因为尾调用优化,但它还是属于其中比较关键的优化。
在编译系统中,需求驱动编译(demand-driven compilation) 即按照需求只执行必要的计算,避免全部重新编译带来的繁重任务量和过长耗时。本文介绍几个编译系统中看到的设计方式。
接上篇文章,传统 PGO 主要优化目标是性能,但经常会牺牲掉包体积大小,这里引入一种兼顾大小和性能的方式。本文内容来源另一篇论文 《Efficient Profile-Guided Size Optimization for Native Mobile Applications》。