| 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. |
ホーム | 目次 | 前ページへ | 次ページへ | 索引 |