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

退出打印视图

更新时间: 2014 年 7 月
 
 

折叠多重定义数据

可以通过折叠多重定义数据来减小数据大小。多次出现相同错误消息的程序可以通过定义全局数据来加以改进,并可使所有其他实例都引用此全局数据。例如:

const char *Errmsg = "prog: error encountered: %d";

foo()
{
        ....
        (void) fprintf(stderr, Errmsg, error);
        ....

进行此类数据缩减的主要目标文件是字符串。可以使用 strings(1) 查看共享目标文件中的字符串用法。以下示例在 libfoo.so.1 文件中生成数据字符串的有序表。此列表中的每项都使用字符串的出现次数作为前缀。

$ strings -10 libfoo.so.1 | sort | uniq -c | sort -rn