Переупорядочение и чередование кода
-
20-09-2019 - |
Вопрос
Являются ли переупорядочение и чередование взаимозаменяемыми понятиями, когда дело доходит до компиляции, оптимизации и выполнения кода?
Решение
Я бы сказал, что они описывают похожую технику, но на уровне деталей означают что-то другое.
Переупорядочение означает взятие случайных инструкций и перемещение их по какой-либо причине.Это довольно общее.
Чередование означает наличие двух длинных фрагментов кода, которые обращаются к разным аппаратным ресурсам и, следовательно, могут работать параллельно.Сочетание инструкций в продуманном шаблоне может привести к сокращению времени выполнения.
Другие советы
если вы имеете в виду выполнение вне порядка, это что-то, что делается процессором во время выполнения в зависимости от доступности исполнительных блоков и инструкций, которые должны быть выданы, в то время как то, что Аарон описал выше, будет во время компиляции (или даже разработки). время, если код сложный (на ум приходит псевдонимирование указателей) или компилятор не слишком хорош).