Oracle® Solaris 11.2 链接程序和库指南

退出打印视图

更新时间: 2014 年 7 月
 
 

压缩的成本和益处

压缩调试节的主要益处是减小了目标文件的大小。然而,压缩也造成了所有开发阶段都需要额外的运行时间和内存使用

  • 编译器必须生成各个未压缩格式的调试节,为压缩版本分配额外的内存,并执行压缩。

  • 读取输入目标文件时,链接编辑器必须将压缩数据读入内存,分配额外的内存以保留解压缩后的数据,并执行解压缩。

  • 输出时,链接编辑器必须创建生成的调试节的未压缩版本。如有压缩请求,需要额外的内存和时间来创建压缩版本。

  • 当一个调试器读取带压缩调试节的目标文件时,此调试器必须分配额外的内存以保留解压缩后的数据,并执行解压缩。

此外,压缩调试节可包含较小的文件,但不适用于储存大量信息。一个常见的示例是 32 位目标文件,由于它们使用 32 位文件的偏移和大小,因此其大小基本限制于 4 GB。有时可假定压缩调试数据可能允许生成更多调试信息。然而,32 位调试数据的格式还包含 32 位偏移,因此从逻辑上来说,未压缩格式的大小不可超过 4 GB。

因此,建议压缩调试节不要用于一般开发,否则编译/链接/调试周期的速度方面的劣势会盖过小型调试数据的优势。当磁盘空间较少,或针对的是广泛复制且很少调试的生产目标文件时,压缩调试节会有一些优势。