C++ のパフォーマンスを深く理解するのに役立つリソース (理想的には本) を探しています。ここにもう少し背景があります:
私は、非常に高いスループット要件や低レイテンシ要件を持つサーバー ソフトウェアを作成しています。私たちは C++ で書きます。現時点では議論の余地はありません。私の同僚のほとんどは、C++ のパフォーマンスをよりよく理解しているようです。彼らはより優れたメンタル モデルを持っているため、特定のコードが大規模に実行されたときにパフォーマンスが低下する時期を知ることができます。私はこの理解に欠けているので、自分のメンタル モデルを改善しようとしています。
私は特に興味があります:
- キャッシュの影響と、オブジェクトのレイアウトによるキャッシュの局所性がコードのパフォーマンスに与える影響について理解する。これは、私のチームの他のメンバーによって提起されたように見える一番の問題です。
- メモリ割り当てがパフォーマンスにどのように影響するかを理解する。TCMalloc (または他の malloc) を使用する必要がありますか? また、どのように知る必要がありますか? さまざまな割り当ておよび割り当て解除パラメーターをどのように調整すればよいですか?
- オブジェクトのコピーによるオーバーヘッドが問題になる時期をどのように知ることができますか (したがって、たとえば、ポインターに切り替える必要があります)。
- また、いつ使用するかについての知識がある限り、一般的に「最適化」にも興味があります。
あまり興味のないこと:
- 「ハイ パフォーマンス コンピューティング」は、より数学/シミュレーション指向のアプリケーションを示すように思われる用語です。
- 私は C++ に行き詰まっているので、他の言語と比較した C++ のパフォーマンスの議論。
出発点として、この本Efficient C++がこの法案に適合するかどうか知っている人はいますか?