私はここに飛び込んで異常なケースを提供したかっただけです...
* パフォーマンスに関する注意が必要なお客様は、わずかな変更でも通知してください!。
私が担当しているのは、顧客自身によるパフォーマンスの観点から死に至るまで分析される傾向のあるプロダクションレンダリングです。マイナーバージョンよりもパフォーマンスが2%遅くなるのは、「バグレポート」の形でまとめて報告されるスローダウンと同じです。
フォーラムのスレッドは、多くの場合、顧客が開発者自身よりも実際にベンチマークを行っているさまざまなバージョンのソフトウェアに対してシーンをベンチマークすることから始まります。「このシーンは、バージョンXでのレンダリングに1時間40分かかりました。バージョンYでは32分かかります。」
「このシーンはバージョンXでのロードに18分かかりましたが、バージョンYでのロードには4分かかりました。」
これらは、最適化が適用されたときに非常に高く評価され、それだけでソフトウェアの新しい非常に高価なアップグレードの購入を保証するのに十分であり、時には10%の削減のようなわずかな改善しかありません。
一部の大規模なスタジオでは、製品を高速化するときに顧客に莫大な費用を節約することもできます。これは、大規模なスタジオの一部はレンダーファームを使用するため、1日中何百ものマシンをレンダリングするために支払う必要があり、ここでの時間の改善により、制作プロセス全体をスピードアップします(アーティストがレンダリングするのを待つのではなく、アーティストの生産性が高い場合は、より良い結果が得られることもあります)。
したがって、顧客が本当に、本当に、本当に気づくこのようなフィールドが存在します-時には開発者自身よりもさらに多く、これはスループットよりもレイテンシに関するUIインタラクションの概念の外にあります。
プログラマーが他のプログラマーではなく、マネージャーや顧客であるパフォーマンス分析を「作成」するために、プログラマーが余分な時間を費やす必要がある頻度はどれくらいですか?
私たちのケースでは、常に、ほぼすべてのマイナーリリースが行われています。速度はトップセールスポイントの1つであり、最も技術的なベンチマークやパフォーマンス分析でさえ、実際に顧客やマネージャーに高く評価され、理解されています。多くの場合、顧客の認識は狂った狼のようであり、より多くの最適化に飢えています。そして、物事をより速くする方法について開発者に提案しようとしています。この場合、さらに最適化し、保守性や機能拡張などの他の指標に焦点を合わせるという顧客の衝動に抵抗するには、実際には規律が必要です。
Thread.Sleep(1000); //pretend this does more than change a 0 to a 1 in the database.