我有两个函数,它们的内容非常相似。
// mock-up code
bool A() {
while(1000000) {
// 3 lines of A() specific code
// 15 lines of shared code, pasted in
// 1 lines of A() specific code
}
}
bool B() {
while(1000000) {
// 2 lines of B() specific code
// 15 lines of shared code, pasted in
// 2 lines of B() specific code
}
}
我不想将 15 行共享代码粘贴到两个函数中(因为这些行非常复杂,如果我稍后更改该代码,我不想记住在两个地方都更改它) .
如果我将这 15 行代码放入一个单独的函数中,则会对性能造成重大影响(JIT 拒绝内联它;可能是由于参数列表中的结构和/或“复杂”的流控制元素)。
还有其他方法吗,还是我运气不好?