20.2 修改前的测量
但是,假设你的系统仍然太慢,尽管你已经按照上面的描述设计了它。根据你对什么是慢的直觉,你很可能匆匆忙忙地就开始进行性能调整。请不要这样做!程序员对性能的直觉是不可靠的。即使对有经验的开发者来说也是如此。如果你开始根据直觉进行修改,你会把时间浪费在那些不能真正提高性能的事情上,而且你可能会在这个过程中使系统变得更加复杂。
在做任何改变之前,先测量系统的现有行为。这有两个目的。首先,通过测量可以确定哪些地方的性能调整会产生最大的影响。仅仅测量顶层的系统性能是不够的。这可能会告诉你,系统太慢了,但它不会告诉你原因。你需要更深入地测量,以详细确定对整体性能有影响的因素;目标是确定少数非常具体的地方,即系统目前花费了大量时间的地方,以及你有改进想法的地方。测量的第二个目的是提供一个baseline,这样你就可以在做出改变后重新测量性能,以确保性能确实得到改善。如果这些改变没有给性能带来可衡量的变化,那么就进行回退(除非它们使系统更简单)。保留复杂性是没有意义的,除非它提供了显著的速度提升。
Last updated