Hacker News Digest

27 августа 2025 г. в 11:38 • stefan-marr.de • ⭐ 141 • 💬 50

OriginalHN

#multithreading#performance#profiling#optimization#x86#race-conditions#cpu#causal-profiling#coz#toxiproxy

How to slow down a program and why it can be useful

  • Зачем замедлять программу?
    Искать race-conditions, «виртуально» оценить выгоду оптимизации (как в Coz) и проверять точность профилировщиков. Для этого меняют расписание потоков или вставляют задержки.

  • Как замедляют сейчас?
    Грубо: Thread.sleep, остановка потоков, вставка лишнего байт-кода. Это снижает точность.

  • Наша идея
    Вставлять задержки внутри basic block на уровне x86. Нужны инструкции, которые:
    – надёжно тратят циклы;
    – не искажают семантику;
    – не оптимизируются CPU за счёт out-of-order.

  • Проблема
    Современные процессоры выполняют независимые mov параллельно, поэтому просто добавить «тяжёлые» команды недостаточно — нужно учитывать зависимости и микроархитектуру.