処理速度を最適化すると、ほとんどのアプリケーションのパフォーマンスも向上します。しかし C ライブラリの中には、処理速度を最適化することができないものがあります。次にその例を挙げます。
整数算術ルーチン
現在の SPARC V8 プロセッサでは、整数の乗算や除算の命令をサポートしています。しかし標準の C ライブラリルーチンがそれらの命令を使用すると、プログラムが SPARC V7 プロセッサ上で実行されている場合、カーネルエミュレーションの負荷のために処理速度が遅くなるか、また最悪の場合にはまったく実行できないことも予想されます。したがって、整数の乗算や除算の命令は標準の C ライブラリルーチンでは使用できません。
ダブルワードのメモリーアクセス
SPARC のダブルワードのロード命令やストア命令 (ldd および std) を使用すると、memmove() や bcopy() といったブロックのコピーや移動のルーチンの処理速度を飛躍的に上げることができます。しかし memmove() や bcopy() は、フレームバッファのような 64 ビットアクセスをサポートしていないメモリーにマップされたデバイスには適していません。したがって、ldd や std は標準 C ライブラリルーチンでは使用できません。
メモリー割り当てのアルゴリズム
C ライブラリルーチンの malloc() と free() は、処理速度や使用領域、およびコーディング時のエラーの起こしやすさ等を考慮した結果の妥協案として UNIX で実装されたものです。協調システム (buddy system) アルゴリズムにもとづくメモリーアロケータは、標準ライブラリより処理速度が速いものがほとんどですが、そのかわりに使用する領域も増えてしまいがちです。