Скажем, у нас есть объект, и что нам нужно проверить следующие вещи -Какой оператор if будет выполняться быстрее?
- Объект-> длина текста больше, чем 0
- Объект-> манекен не является нулевым
- Objecct-> dummy2 существует в другом объекте
у нас есть две возможности для если заявление:
if(greaterThan(Object->text, 0) &&
exists(Objet->dummy) &&
inObject(Object->dummy2, Objet2))
Во-вторых, если:
if(!greaterThan(Object->text, 0) ||
!exists(Objet->dummy) ||
!inObject(Object->dummy2, Objet2)) {
NOP
} else {
//Do something;
}
Какой будет быстрее? Заранее спасибо.
Зачем вам все это? Вы заметили, что в нем есть хиты производительности? Я действительно сомневаюсь. «Преждевременная оптимизация - это корень всего зла» ... Просто напишите, что легче всего читать. –
generalu first one, так как у вас меньше операций, худший случай первого - 2, а в худшем случае второй - 2 ИЛИ и 3 НЕЗАВРАЩЕНИЕ – user902383
Почему вас это волнует, почему он заботится? Просто повторяя усталую «преждевременную оптимизацию ...», вы указываете, что вы подразумеваете, что OP фактически оптимизирует это преждевременно и даже что он оптимизирует все это. Иногда вы просто хотите знать _why_, даже если нет практической выгоды. Действительно, вопрос помечен темой «Теория» ... – BeeOnRope