パフォーマンスとターキテクチャの影響を考えてパフォーマンスを良くする方法を選ぶこと。
Sotware Architecture in Practice の著者は、紹介されているパフォーマンス要素は、アーキテクチャと非アーキテクチャの選択で、影響あたえることを 述べている。 アーキテクチャの選択は、様々なコンポーネントの中に機能の割当を含み、 これらのコンポーネントにおけるマナーは、相互互換があり、操作的なデプロイ、状態の管理、永続データの管理がある。 異なるアーキテクチャの選択は、異なる要素を影響を与え、システム全体のニーズは、作られた選択として考慮されなければならない. 例えば、状態を持つアーキテクチャを、状態を持たない アーキテクチャに変えることは、レイテンシーを増やすかもしれない.しかし、劇的にスケーラビリティを改善する。
非アーキテクチャの選択は、単一のコンポーネントと 特定の実装に関連した技術イディオムのいくつかの中に、キーとなるオペレーションのためのアルゴリズムを含む。例は、より効果的なソートアルゴリズムとを実装している、もしくは、クエリパフォーマンスを改善するためにデータベースをわずかに再構築している。
パフォーマンス要素を管理していることは、この本のスコープを超える複雑なトピックになる。 いくつか基本ツールと、すべてのターキテクトがこれらを考えているときに持っているべきトリックある。
携わっていたたくさんのシステムで、パフォーマンスの問題を解決するための一番簡単な方法は、いくつかのハードウェアに任せることである。 ハードウェアを利用することが特定の方法は、ほとんど終わりがない. それでシステムを、問題の大半を顧客のために有利にするために設計する。
もちろん、良いバランスがある。 最後に、もしあなたのターキテクチャのスケーラビリティを理解すれば、ハードウェアは動作だけするだろう.
コンポーネント間のトランザクションが平等におおきいとき、パフォーマンスは、配信されたシステムでは、典型的に、強化される。
複数のcpuのシステムは、ほとんどのサーバの標準である。Solarisのように、UNIXベースのオペレーションシステムは、プロセッサを12個にスケールできる証明してきた。どう複数のcpu が、アーキテクチャのパフォーマンスに影響をあたえるかを理解すべきである。むしろ古い検索エンジンに頼っているあるアプリケーションでは、プロセッサを追加することが、パフォーマンスに役立つと考えている。
パフォーマンスは、何が遅すぎるのかをしっていれば、期待通りにだけ上がる。ある技術は、プロファイラーを使うことである。しかし、プロファイラーは、非アーキテクチャのボトルネックを含んだ状況を、特定し、改善するだけであることを釘をさしておく。アーキテクチャの問題が明らかになるとき、たいていボトルネックがあり、もしくは、上書きすることを意味する。
これは、最初に読んだ本Computer System Design にあるたくさんのアドバイスである。一般的に、通常のオペレーションは、最初にすべきで、おそらくめったにおきないかもしれない失敗条件は、適切にオペレーションさせるべき。たいてい、クイックリカバリのためのちょっとしたモチベーションになる。
一番シンプルな形式です。キャッシュは、いくつか前もって処理された結果を保存することで、再利用することができる。