Skip to content

AMazkun/cpp_lock_compare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

C++ Lock Performance: std::lock_guard vs std::unique_lock vs std::scoped_lock

Запустив 7 ідентичних бенчмарків поспіль на Apple M1, щоб порівняти механізми синхронізації в C++. Результати? Різниці практично немає. 📊 Результати 7 тестів:

Тест #1: lock_guard 🏆 (35.61s) | scoped_lock +0.67% | unique_lock +1.51%

Тест #2: unique_lock 🏆 (37.58s) | lock_guard +0.14% | scoped_lock +1.09%

Тест #3: unique_lock 🏆 (35.87s) | lock_guard +0.28% | scoped_lock +0.30%

Тест #4: lock_guard 🏆 (35.16s) | scoped_lock +0.46% | unique_lock +0.86%

Тест #5: scoped_lock 🏆 (35.04s) | lock_guard +0.13% | unique_lock +1.03%

Тест #6: lock_guard 🏆 (35.30s) | unique_lock +0.44% | scoped_lock +6.00%*

Тест #7: lock_guard 🏆 (35.17s) | unique_lock +0.44% | scoped_lock +0.74%

*одноразовий викид через системні процеси

💡 Висновок: РІЗНИЦІ НЕМАЄ

Середня різниця між реалізаціями: ~0.5-1% - це статистична похибка, а не реальна різниця у продуктивності.

Кожен з них вигравав у різних запусках. Це означає одне: компілятор генерує майже ідентичний машинний код для всіх трьох варіантів у цьому сценарії.

🎯 Що реально має значення:

❌ Не важливо: який lock використовувати (різниця <1%)

✅ Важливо: мінімізувати час у critical section!

About

Comparing C++ Lock Performance: std::lock_guard vs std::unique_lock vs std::scoped_lock

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages