本附录介绍了 C 程序的性能调节。 另请参见Oracle Developer Studio 12.5:性能分析器。
libfast.a 提供了快速但 MT 不安全版本的标准 C 库函数 malloc()、free()、realloc()、calloc()、valloc() 和 memalign()。由于它已经过优化,可在单线程应用程序中快速分配,因此可能不适用于需要并发多线程分配或节约空间的内存重用的应用程序。
libfast_r.a 是 MT 安全版本的 libfast.a,虽然它并不支持多线程的并发内存分配。一次只能为一个线程分配可用内存。
两个版本在 32 位和 64 位 Oracle Solaris 上都受支持。它们在 SPARC 和 x86 平台上都受支持。
释放 libfast malloc() 分配的块不会使其存储可用于分配不同大小的新块。因此,libfast 可能不适用于多阶段应用程序。
通过分析确定以下核对表中的例程对于您应用程序的性能是否重要,然后根据该核对表确定 libfast.a 或 libfast_r.a 是否对性能有益。
如果内存分配性能很重要,且最常分配的块大小等于或略小于 2 的幂,请勿使用 libfast.a 或 libfast_r.a。重要的例程如下:malloc()、free() 和 realloc()。
如果应用程序为多线程应用程序,请勿使用 libfast.a。改用 libfast_r.a。
链接应用程序时,请将选项 -lfast 或 -lfast_r 添加到链接时使用的 cc 命令。cc 命令会先链接 libfast.a 或 libfast_r.a 中的例程,然后再链接标准 C 库中的对应例程。