Доклад

Вам точно нужно многопоточное программирование?

  • На русском языке

Все больше людей смотрят в сторону многопоточного программирования и часто видят решение всех проблем в добавлении многопоточности в свои изначально однопоточные проекты.

Я расскажу о трудностях в добавлении многопоточки в механизм обхода живых объектов в сборщике мусора виртуальной машины на примере проекта из Huawei. 

Рассмотрим, какие неочевидные сложности могут возникнуть в процессе:

— scheduler операционной системы, который разложит потоки на одно ядро;

— особенности мобильных ОС, где включается энергосбережение и это тоже стоит брать во внимание;

— всевозможные проблемы с кешами (false sharing).

— реальная производительность lock free очередей на ARM;

— особенности ядер процессоров (как для мобильных устройств, где ядра несимметричные, так и для больших серверных процессоров, где доступ к кешам из одного ядра в другое зависит от их расположения на кристалле);

— сложности воспроизведения сценариев падений, особенно когда колличество целевых устройств больше одного, и они на разных архитектурах.

В конце упомяну, что мы делаем в Spectral::Technologies чтобы избежать таких проблем и какие сложности у нас встречаются.

Спикеры

Доклады