Оптимальная реализация спинлоков и другие полезные алгоритмы, оптимизация по скорости с помощью С, ассемблера |
Здравствуйте, гость ( Вход | Регистрация )
Оптимальная реализация спинлоков и другие полезные алгоритмы, оптимизация по скорости с помощью С, ассемблера |
Iron Bug |
30.1.2015, 15:24
Сообщение
#1
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Совершенно потрясающий детальный обзор и сравнительный анализ скорости работы различных реализаций спинлоков и RW-локов (С/ассемблер):
http://locklessinc.com/articles/locks/ А также множество исключительно полезных статей о реализации различных алгоритмов на C: http://locklessinc.com/articles/ Очень рекомендую тем, кто занимается тонкой оптимизацией по скорости. |
|
|
ViGOur |
19.2.2015, 9:07
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
По моему каждый программист должен знать алгоритмамы, и интересоваться новыми, все же никогда не знаешь что и когда может пригодится, а тут выдумывать вилосипед не нужно и ты уже знаешь как это сделать быстро и кашерно!
|
|
|
Iron Bug |
19.2.2015, 9:36
Сообщение
#3
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
надо сказать, что это ну очень кошерные алгоритмы! работают очень быстро.
у меня часто возникает задача оптимизации по скорости и я всегда ищу разнообразные методы для достижения более высокой скорости работы приложений. синхронизация потоков часто отъедает существенную долю времени и является самым узким местом многопоточных приложений. конечно, бесплатного сыра не бывает и в обмен на скорость спинлоки пожирают проц. но иногда не жалко пожертвовать занятостью проца, чтобы достичь нужной эффективности в обработке данных. кстати, недавно тут читала одну статью про сравнение скоростей механизмов синхронизации стандартных библиотек (локов через атомики и разных мьютексов) на разных системах: https://www.arangodb.com/2015/02/16/compari...campaign=buffer весьма интересная статья, хотя и не все аспекты учтены, но примерно видно, какие методы синхронизации работают быстрее. |
|
|
ViGOur |
19.2.2015, 12:22
Сообщение
#4
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Егумс, познавательно!
|
|
|
Iron Bug |
19.2.2015, 16:54
Сообщение
#5
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Егумс, познавательно! а я вот благодаря оптимизации себе работу нашла. точнее, работа сама меня нашла. да какая работа! иностранная компания, работающая по подряду на Intel, разработка под Линюкс, работа с кернелом, с железом, с сетевыми протоколами. они не могли найти специалистов, которые знают, что такое оптимизация и которые могут писать на С и под железо. и вот все мои мечты разом сбылись. сегодня мне позвонили, и сказали, что меня принимают на работу. работать буду здесь, но в компании сотрудники из разных стран и официальный язык общения - английский. а я уж думала, что умение экономить каждую наносекунду никому теперь не нужно. правда, мне придётся многому учиться, что-то вспоминать, что-то изучать заново. но это стоит того. и я очень рада, что наконец-то буду работать в настоящей разработке, а не просто в конторе, где кропают говнокод, лишь бы как-то работало. всегда хотела работать так, как работают за рубежом. чтобы софт работал сразу из коробки. надеюсь, такой мощный импульс для саморазвития поможет улучшить свои профессиональные навыки. и я ещё больше буду знать про линюкс и про оптимизацию |
|
|
Текстовая версия | Сейчас: 25.12.2024, 17:38 |