[#] Ускоряем std::shared_mutex в 10 раз
habrabot(difrex,1) — All
2017-05-11 09:30:04


В этой статье мы детально разберем атомарные операции и барьеры памяти C++11 и генерируемые ими ассемблерные инструкции на процессорах x86\_64.
Далее мы покажем как ускорить работу **contfree\_safe\_ptr<std::map>** до уровня сложных и оптимизированных **lock-free** структур данных аналогичных по функциональности std::map<>, например: SkipListMap и BronsonAVLTreeMap из библиотеки libCDS (Concurrent Data Structures library): [github.com/khizmax/libcds][1]
И такую многопоточную производительность мы сможем получить для любого вашего изначально потоко-**не**безопасного класса T используемого как contfree\_safe\_ptr<T>. Нас интересуют оптимизации повышающие производительность на ~1000%, поэтому мы не будем уделять внимание слабым и сомнительным оптимизациям.
[Читать дальше →][2]

[1]: https://github.com/khizmax/libcds
[2]: https://habrahabr.ru/post/328362/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut