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

退出打印视图

更新时间: 2014 年 7 月
 
 

最小化分页活动

任何访问新页的进程都会导致页面错误,这是一种开销很大的操作。由于共享目标文件可供许多进程使用,因此,减少由于访问共享目标文件而生成的页面错误数会对进程和整个系统有益。

将常用例程及其数据组织到一组相邻页中通常会改善性能,因为这样改善了引用的邻近性。当进程调用其中一个函数时,此函数可能已在内存中,因为它与其他常用函数邻近。同样,将相互关联的函数组织在一起也会改善引用的邻近性。例如,如果每次调用 foo() 函数都会导致调用 bar() 函数,则应将这些函数放在同一页中。可以使用诸如 cflow(1)、tcov(1)、prof(1)gprof(1) 工具来确定代码适用范围和配置。

应将相关功能与其共享目标文件隔离开来。以前,生成的标准 C 库包含许多无关函数。仅在极少数情况下,某个可执行文件才可能会使用此库中的所有函数。由于这些函数用途广泛,因此,确定实际上最常用的函数组也具有一定的难度。相反,刚开始设计共享目标文件时,只在此共享目标文件中维护相关函数。这样会改善引用的邻近性,并会产生减小目标文件总体大小的负面影响。