Несколько причин, по которым применение технологии Hyper-Threading может приводить к снижению производительности:
- Задержки в модуле Hyper-Threading. 2 Он распределяет потоки на виртуальные ядра, и включение технологии немного уменьшает скорость поступления данных в процессор. 2
- Неразличие логических и физических ядер. 2 Логическое ядро работает по остаточному принципу: если первое ядро нагружено на 70%, то второму логическому ядру остаётся только 30%. 2 Сложный процесс может попасть в логическое ядро, и скорость обработки замедлится. 2
- Использование одних и тех же кэшей. 1 Поскольку гиперпотоки используют одни и те же кэши L1 и L2, один гиперпоток может уничтожать кэши другого. 1 В худшем случае потоки по очереди уничтожают кэш друг друга, и производительность снижается, поскольку кэши повторно заполняются только для того, чтобы быть уничтоженными снова. 1
- Применение в системах реального времени. 13 В таких системах, которые требуют жёсткого соблюдения временных ограничений, Hyper-Threading может привести к непредсказуемым задержкам из-за конкурентности за блок процессора. 3