if (m_size == m_capacity - 1)
resize(m_capacity * 1.2);
在考虑深度CPU流水线和一小段代码时,我的问题真的出现了。根据我的理解,这里要做的是两条指令,它们取决于彼此的结果,所以我们假设情况更糟。
(m_capacity - 1)---等待---(结果== m_size)---等等---分支小姐
除非我们使用预先计算的修改存储m_capacity。
(m_capacity == m_size)---等待---分行小姐
我不确定这些等待会持续多长时间,并且我确定它们具有CPU特定性,但是值得执行此类优化还是CPU有解决方法?
尽管可能不建议在微观范围内进行优化,但仍然很清楚会发生什么。