第10章

  1. 微基准测试可以独立测量代码小片段的性能。要测量同一代码片段在程序上下文中的性能,必须使用性能分析器。
  2. 处理少量数据通常涉及相应较小的计算量,速度非常快。内存分配会增加一个与数据大小不成比例的固定开销。当处理时间较短时,这种开销的相对影响更大。此外,内存分配可能会使用全局锁,从而导致多个线程串行化。
  3. 局部缓冲区优化用对象自身内部的一部分缓冲区,替代了外部内存分配。这避免了额外内存分配的成本和开销。
  4. 无论是否发生次级分配,对象都必须构造,其内存也必须分配。这种分配有一定的成本 —— 如果对象在堆上分配则成本较高,在栈上分配则成本较低 —— 但在对象可用之前必须支付这一成本。局部缓冲区优化会增加对象的大小,从而增加原始分配的大小,但这通常不会显著影响该分配的成本。
  5. 短字符串优化是指,将字符串字符存储在字符串对象内部的局部缓冲区中,适用于长度在一定范围内的字符串。
  6. 小数组优化是指,将数组的少量元素存储在数组对象内部的局部缓冲区中。