私は、パフォーマンスSLAがない分野でこの作業に参加しています。コンピューターグラフィックスのオフラインレンダラーに関しては、ユーザーに「満足のいくパフォーマンス」はありません。なぜなら、最先端のレンダラーでもクラウドにコンピューティングを分散し、ファームをレンダリングするために莫大な金額を既に投入しているからです。フィルムの生産品質の画像とフレームを出力します。例えば
しかし、このドメインで長年働いている人として、効率を優先して保守性を大幅に低下させるソリューションは、常に変化するパフォーマンス要件に実際に取り組んでいると言わなければなりません。周囲のコードと競合他社がお互いに優れていることを期待するユーザーの両方の観点で、物事が足元で変化しているため、今後何年もソリューションを効果的に維持できない場合、ソリューションはすでに廃止され、卸売りの交換が必要です。
VTuneのようなプロファイラーの究極の目的は、コードをより高速に実行する方法とは思いません。彼らの究極の価値は、増大するパフォーマンス要求に対応するために生産性を低下させないことです。私は絶対にし、いくつかグロス探してマイクロ最適化、プロファイラを適用する必要がある場合は、(私が想像するいくつかのテストケースではなく、現実世界のユーザ事例に対してそれを実行していると組み合わせる可能性が重要である)を、私は適用を確実にするように、必然的に総-探し最適化は、非常に慎重に表示される上位のホットスポットのみに加えて、非常に慎重に文書化するだけでなく、ソリューションが実行可能であれば、今後数年間はそれらを再検討し、維持し、微調整して変更する必要があるためです
特に、最適化されたソリューションがより多くのカップリングを伴う場合、私はそれを使用することを本当に嫌がります。コードベースの最もパフォーマンスが重要な分野で私が評価する最も価値のあるメトリックの中には、デカップリングがあります(動作する必要がある情報量を最小限に抑えるなど、変更を直接必要としない限り、変更を必要とする可能性を最小限に抑えるなど) )、これらの重要な領域は、物事が変化する理由を大幅に増やすからです。つまり、作業に必要な情報が少ないほど、変更の理由が少なくなり、変更の理由を最小限に抑えることは、とにかく絶えず変化する必要があるため、特定の焦点領域で生産性を向上させるための大きな部分ですそれ以外の場合は1年で廃止されます)、
私にとって最大かつ最も効果的なソリューションは、効率と保守性、生産性が互いに正反対にならないソリューションです。私の探求は、これらの概念をできる限り調和のとれたものにすることです。