Понимание std :: hardware_destructive_interference_size и std :: hardware_constructive_interference_size
C ++ 17 добавленоstd::hardware_destructive_interference_size
а такжеstd::hardware_constructive_interference_size
, Во-первых, я подумал, что это просто портативный способ получить размер строки кэша L1, но это упрощение.
Вопросы:
Как эти константы связаны с размером строки кэша L1?Есть хороший пример, который демонстрирует их варианты использования?Оба определеныstatic constexpr
, Разве это не проблема, если вы создаете двоичный файл и запускаете его на других машинах с различными размерами строк кэша? Как он может защитить от ложного обмена в этом сценарии, когда вы не уверены, на каком компьютере будет работать ваш код?