Микрооптимизация - почти всегда неправильная вещь. Даже не запускайте его, если программа не запускается слишком медленно, и вы используете профилировщик, чтобы точно определить, где находятся медленные части.
Как только вы это сделаете, я советую посмотреть, как улучшить код и локализацию данных, поскольку ошибки в кеше почти наверняка хуже, чем неоптимальные инструкции.
После этого в довольно странном случае, когда вы можете использовать подход, основанный на назначении или сравнении, попробуйте оба и рассчитайте время. Микрооптимизация - это игра чисел. Если цифры недостаточно хороши, выясните, почему, а затем убедитесь, что то, что вы делаете, действительно работает.
Итак, что вы подразумеваете под сравнением? Условные переходы создают проблемы любому неопределенно современному процессору, но разные процессоры делают разные вещи, и нет никакой гарантии, что какой-либо из них замедлит работу. Кроме того, если любой из них приводит к отсутствию кэша, это, вероятно, медленнее, несмотря ни на что.
Наконец, языки обычно компилируются в машинный код, и простые вещи, такие как сравнения и назначения, обычно компилируются одинаково. Большая разница будет в типе процессора.