1. 在明确必要之前别急着优化这可能是最重要的性能优化技巧之一。你应该遵循常见的最佳实践做法并在案例中高效地应用它。但是这并不意味在证明必要之前,你应该更换任何标准库或构建复杂的优化。
多数情况下,过早地优化会占用大量的时间,而且会使代码变得难以理解和阅读。更糟糕的是,这些优化通常并没带来任何好处,因为你花了大量的时间在优化应用中的非关键部分。
那么,要怎么证明东西需要优化呢?
首先,你需要定义你的代码速度得多快。例如,为所有 API 调用指定最大响应时间,或者指定在特定时间范围内要导入的记录数量。在做完这些后,你需要确定你应用中哪些部分太慢需要改进。当完成这些后,你就可以来看看第二个技巧提示。
2. 使用分析器找到真正的瓶颈在完成第一部分的优化建议以鉴别出你应用中需要提升的部分后,要从哪里入手呢?
你可以有两种途径来解决这个问题:
查看你的代码,从看起来可疑的或者你觉得可能会导致出现问题的地方入手。
或者使用分析器获取代码每个部分的行为(执行过程)和性能的详细信息。
希望我不需要解释为什么应该始终遵循第二种途径/方法的原因。
很显然,基于分析器的方式可以让你更好地理解代码的性能影响,并允许你去专注于更关键的部分(代码)。即使你曾经使用过分析器,你一定记得你曾经多么惊讶于一下就找到了代码的哪些部分产生了性能问题。我第一次的猜测不止一次地导致我走错了方向。
3. 为整个应用程序创建一个性能测试套件这是另一个通用的可以帮助你避免在将性能改进部署到产品中之后经常会发生的许多意外问题的技巧。你应该总是定义一个性能测试套件来测试整个应用程序,并在性能改进之前和之后运行它。
这些额外的测试运行将帮助你识别你的改动所引起的功能和性能上的副作用,并确保不会导致弊大于利的更新。如果你处理的是被应用程序的多个不同部分使用的组件,如数据库或缓存,那这一点尤为重要。