C ユーザーズガイド |
付録 C
パフォーマンスチューニング (SPARC)
この付録では SPARC プラットフォームでのパフォーマンスチューニングについて説明します。説明項目は次のとおりです。
制限
処理速度を最適化すると、ほとんどのアプリケーションのパフォーマンスも向上します。しかし C ライブラリの中には、処理速度を最適化することができないものがあります。次にその例を挙げます。
- 整数算術ルーチン
- 現在の SPARC V8 プロセッサでは、整数の乗算や除算の命令をサポートしています。しかし標準の C ライブラリルーチンがそれらの命令を使用すると、プログラムが SPARC V7 プロセッサ上で実行されている場合、カーネルエミュレーションの負荷のために処理速度が遅くなるか、また最悪の場合にはまったく実行できないことも予想されます。したがって、整数の乗算や除算の命令は標準の C ライブラリルーチンでは使用できません。
- ダブルワードのメモリーアクセス
- SPARC のダブルワードのロード命令やストア命令 (
ldd
およびstd
) を使用すると、memmove()
やbcopy()
といったブロックのコピーや移動のルーチンの処理速度を飛躍的に上げることができます。しかしmemmove()
やbcopy()
は、フレームバッファのような 64 ビットアクセスをサポートしていないメモリーにマップされたデバイスには適していません。したがって、ldd
やstd
は標準 C ライブラリルーチンでは使用できません。
- メモリー割り当てのアルゴリズム
libfast.a
ライブラリライブラリ
libfast.a
は標準 C ライブラリ機能バージョンの処理速度を上げたものです。これはオプションであるため、標準 C ライブラリでは使用できないようなアルゴリズムやデータ表現を使用することができ、ほとんどのアプリケーションのパフォーマンスを改善することができます。次のチェックリストを参考にして、自分のアプリケーションのパフォーマンスが
libfast.a
によって向上するかどうかを判断してください。その際、プロファイリングを使用します。
libfast.a
を使用する場合libfast.a
を使用してはいけない場合アプリケーションをリンクする際には、
cc
コマンドの後ろに-lfast
オプションを加えてください。cc
コマンドは標準の C ライブラリよりも先にlibfast.a
にあるルーチンをリンクします。
サン・マイクロシステムズ株式会社 Copyright information. All rights reserved. |
ホーム | 目次 | 前ページへ | 次ページへ | 索引 |