我要在没有性能SLA的领域进行这项工作。对于计算机图形学中的脱机渲染器,用户没有“令人满意的性能”,因为他们已经投入了大量资金,即使使用最先进的渲染器,也可以跨云分布计算并渲染服务器场输出高质量的胶片图像和帧,例如
但我必须说,作为在这一领域工作了多年的人,任何严重降低可维护性以提高效率的解决方案实际上都在应对日新月异的性能要求。因为如果随着情况的发展(在周围的代码以及用户对竞争对手的竞争中不断取得的成就,用户的期望都很高),您无法在未来几年内有效地维护您的解决方案,那么您的解决方案已经在朝着过时的方向发展。需要批发更换。
我不认为像VTune这样的探查器的最终目的是使我的代码运行得更快。它们的终极价值是确保我不会降低生产力以满足不断增长的性能要求。如果我绝对必须进行一些粗略的微优化,那么探查器结合针对实际用户案例运行(我认为不是某些测试用例可能很重要),可以确保我不可避免地应用这种粗略的外观非常明智地仅对出现的最重要的热点进行优化,并非常仔细地记录下来,因为如果该解决方案仍然可行,我将不可避免地不得不在接下来的几年中重新审视,维护和调整并更改它们。
特别是如果您的优化解决方案涉及更多耦合,那么我真的不愿意使用它。在代码库中对性能最关键的领域中,我最欣赏的最有价值的指标之一就是去耦(例如,在使需要处理的信息量最小化的同时,这也最小化了需要更改的可能性,除非直接需要更改) ),因为这些关键区域显着增加了事物发生变化的原因。这意味着某些事情需要工作的信息越少,变更的原因就越少,而将变更的原因降到最低确实是提高我特定关注领域的生产力的重要组成部分,因为无论如何情况都将不断变化(我们'否则会在一年后过时),
对我来说,我找到的最大,最有效的解决方案是,效率,可维护性和生产率并非彼此截然相反。对我的追求是,试图使这些概念尽可能地和谐。