gudleifr писал(а):
В прошлый раз коллега Хищник выкрутился из подобного обсуждения - мол, берем специальное железо, которое все делает за один такт - и радуемся
Специальное железо - это не которое ускоряет Форт до небывалых пределов. Оно должно выполнять действия вообще вне потока данных процессора (тезис "do not block the datapath"). Неверен сам подход, когда процессор работает в цикле "загрузили данные через шину - обработали в регистрах - выгрузили через шину". Это автоматически формирует бутылочное горлышко. Его можно усугубить, если тратить много тактов на стадии "обработали в регистрах", но принципиально расшить поток здесь не получится. Речь идет, конечно, о
действительно высокопроизводительных вычислениях. Для PC игра в "компилятор-интерпретатор" тоже интересна, но остается на нижнем уровне. Потому что, например, 3D-графику в процессорной эмуляции ну никак не сделать, только с GPU. Отсюда и вопрос - за что мы боремся? У программы есть множество характеристик, из которых производительность - не единственная. Зачем же выжимать из кода какие-то пределы (тем более что их там и не особо много), если это создает проблемы? Важнее здесь понять сценарии использования. Для каких-то производительность будет совершенно не важна, для каких-то - приемлем и шитый код. А вот откладывание запуска рабочей версии до момента, когда будут выжаты еще +10% может быть совершенно неприемлемо. Фактически, программы нет, хотя можно было уже работать. А вместо этого идет шлифовка непонятно зачем нужного функционала.