История изменений
Исправление i-rinat, (текущая версия) :
Не пробовал сделать синтетический бенчмарк? Сделать тысячи нитей, которые в цикле берут мьютекс, увеличивают счётчик, отпускают мьютекс. Каждый поток делает одинаковое число итераций. Интересно узнать, например:
- есть ли на такой синтетике разница в общем времени выполнения?
- если есть, все ли потоки завершаются примерно одновременно?
- как время выполнения зависит от числа потоков?
- меняется ли время выполнения, если ограничить процессу допустимые ядра так, чтобы SMT не вмешивался?
- есть ли разница в ответах на предыдущие вопросы при запуске на Windows и на Linux?
- есть ли зависимость от версии glibc на Linux? (на совсем древних не было lock elision)
- что насчёт других ядер, вроде FreeBSD?
Исходная версия i-rinat, :
Не пробовал сделать синтетический бенчмарк? Сделать тысячи нитей, которые в цикле берут мьютекс, увеличивают счётчик, отпускают мьютекс. Каждый поток делает одинаковое число итераций. Интересно узнать, например:
- есть ли на такой синтетике разница в общем времени выполнения?
- если есть, все ли потоки завершаются примерно одновременно?
- как время выполнения зависит от числа потоков?
- меняется ли время выполнения, если ограничить процессу допустимые ядра так, чтобы SMT не вмешивался?