C 库的某些部分不能进行优化以提高速度,尽管这样做对大多数应用程序有益。某些示例:
整数运算例程-当前 SPARC V8 处理器支持整数乘法和除法指令。但是,如果标准 C 库例程要使用这些指令,则在 V7 SPARC 处理器上运行的程序将由于内核仿真开销而运行慢,或者完全中断。因此,在标准 C 库例程中不能使用整数乘法和除法指令。
双字内存访问-如果块复制和移动例程(如 memmove() 和 bcopy())使用 SPARC 双字装入和存储指令(ldd 和 std),其运行速度会显著提高。有些内存映射的设备(如帧缓冲器)不支持 64 位访问;但是,如果使用了 memmove() 和 bcopy(),这些设备便可正常工作。因此,在标准 C 库例程中不能使用 ldd 和 std。
内存分配算法-C 库例程 malloc() 和 free() 在旧的 UNIX 程序中通常在综合考虑速度、空间和编码错误的非敏感性的基础上实现。基于“伙伴系统”算法的内存分配器通常比标准库版本运行得快,但会占用更多空间。