Если мы программируем на C/C++ мало чем можем влиять на конвееры, потому, что компилятор весьма агрессивно переупорядочивает код. (За очевидными исключениями, когда мы используем asm директивы, ну и некоторые интринсики могут необосновано смутить кодогенератор).
Улучшенные интелом версии gcc одно время давали выигрыш процентов до 20. Вроде gcc и clang прибавили в последнее время, но я не изучал текущее положение дел.
Вот за чем можно следить, так это за локальностью и порядком обращений к памяти. Правильно разложенные (и выровненные) поля в структурах данных, возможно, даже поля следующие в порядке обращения к ним в самом типичном случае.
no subject
Date: 2013-08-04 04:40 pm (UTC)Улучшенные интелом версии gcc одно время давали выигрыш процентов до 20. Вроде gcc и clang прибавили в последнее время, но я не изучал текущее положение дел.
Вот за чем можно следить, так это за локальностью и порядком обращений к памяти. Правильно разложенные (и выровненные) поля в структурах данных, возможно, даже поля следующие в порядке обращения к ним в самом типичном случае.