Files
multithread_experiments/readme.md
2020-07-10 16:00:00 +03:00

31 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# multithread_experiments
## Результаты на Windows
Измерения производительности проводились с `-O3` оптимизацией.
### Эксперименты с мьютексами в одном потоке
Наибольшие накладные расходы на синхронизацию несет `PIMutex` проигрывающий остальным способам в `~50-100 раз`. Остальные результаты соизмеримы, при этом вариант `stdAtomic` в
эксперименте использует менее строгие правила защиты кода и в реальных задачах применим не всегда.
```cmd
without synchronization: 1.487 ms
piMutex: 959.774 ms
piConditionLock: 15.873 ms
stdMutex: 13.414 ms
stdAtomic: 6.448 ms
```
### Эксперименты с мьютексами в нескольких потоках
Как и в однопоточном тесте, `PIMutex` оказывается самым медленным, проигрывая остальным механизмам синхронизации в
`~18-120 раз`. При этом производительность`PIConditionLock` начинает заметно снижаться по сравнению с однопоточным
тестом, отставая в `~4 раза` от `std::mutex`.
```cmd
piMutex: 3237.55 ms
piConditionLock: 179.799 ms
stdMutex: 25.5425 ms
stdAtomic: 16.6967 ms
```