Невозможно ответить каким-либо значимым образом. Это зависит от фактического кода и от используемой вами платформы. Как правило, если есть простые локальные оптимизации, которые могут работать, компилятор JIT сделает их за вас.
Вы лучше делать следующее:
- Написать программу в простом и естественном пути.
- Получите его работу.
- Запустите его на типичном наборе данных ввода/проблемы. Если это достаточно быстро, то остановитесь.
- Профилируйте код при его выполнении типичного набора данных ввода/вывода.
- Используйте профилирующие результаты для определения наиболее критической точки доступа в вашем коде.
- Осмотрите код и определите возможно оптимизация.
- Кодирование оптимизации и повторное профилирование. Улучшилось ли это?
- Повторяйте с шага 3 до тех пор, пока программа не будет работать достаточно быстро, или у вас не закончились возможные оптимизации.
Проблема с таблицами поиска является то, что вы торгуете от времени пространства, и использование пространства зависит от количества комбинаций входов, которые ваше приложение использует. Подход таблицы поиска только окупается в ограниченных случаях.
Невозможно дать количественный ответ, потому что он зависит от многих зависимых от платформы и зависящих от кода факторов (процессор, тип памяти, скорость памяти, размер кода, давление в регистре, память шаблоны доступа и т. д.). Одна операция регистрового регистра, вероятно, будет намного быстрее, чем чтение незашифрованной памяти, но это не реально реалистичное сравнение. –
грубо говоря, они похожи. С точки зрения многопоточности обработка становится относительно дешевой, когда вы используете больше процессоров, но кэш и память, которые являются совместно используемыми, являются более критичным ресурсом. –