Александр Емеленко — Вам точно нужно многопоточное программирование?
Подробнее о конференции C++ Russia: https://jrg.su/9Sszhd
— — Скачать презентацию с сайта C++ Russia — https://jrg.su/BanUb4
Все больше людей смотрят в сторону многопоточного программирования и часто видят решение всех проблем в добавлении многопоточности в свои изначально однопоточные проекты. Александр рассказал о трудностях в добавлении многопоточки в механизм обхода живых объектов в сборщике мусора виртуальной машины на примере проекта из Huawei. Он показал, какие неочевидные сложности могут возникнуть в процессе: — scheduler операционной системы, который разложит потоки на одно ядро; — особенности мобильных ОС, где включается энергосбережение и это тоже стоит брать во внимание; — всевозможные проблемы с кешами (false sharing). — реальная производительность lock free очередей на ARM; — особенности ядер процессоров (как для мобильных устройств, где ядра несимметричные, так и для больших серверных процессоров, где доступ к кешам из одного ядра в другое зависит от их расположения на кристалле); — сложности воспроизведения сценариев падений, особенно когда колличество целевых устройств больше одного, и они на разных архитектурах. В конце спикер упомянул, что делают в Spectral::Technologies, чтобы избежать таких проблем и какие сложности у них встречаются.