![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Iron Bug |
![]() ![]()
Сообщение
#1
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Совершенно потрясающий детальный обзор и сравнительный анализ скорости работы различных реализаций спинлоков и RW-локов (С/ассемблер):
http://locklessinc.com/articles/locks/ А также множество исключительно полезных статей о реализации различных алгоритмов на C: http://locklessinc.com/articles/ Очень рекомендую тем, кто занимается тонкой оптимизацией по скорости. |
|
|
![]() |
Iron Bug |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
надо сказать, что это ну очень кошерные алгоритмы! работают очень быстро.
у меня часто возникает задача оптимизации по скорости и я всегда ищу разнообразные методы для достижения более высокой скорости работы приложений. синхронизация потоков часто отъедает существенную долю времени и является самым узким местом многопоточных приложений. конечно, бесплатного сыра не бывает и в обмен на скорость спинлоки пожирают проц. но иногда не жалко пожертвовать занятостью проца, чтобы достичь нужной эффективности в обработке данных. кстати, недавно тут читала одну статью про сравнение скоростей механизмов синхронизации стандартных библиотек (локов через атомики и разных мьютексов) на разных системах: https://www.arangodb.com/2015/02/16/compari...campaign=buffer весьма интересная статья, хотя и не все аспекты учтены, но примерно видно, какие методы синхронизации работают быстрее. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 28.4.2025, 16:44 |