Как стать автором
Обновить

Комментарии 13

Вот еще отличная статья на эту тему. Причем рассматривается та же проблема с общим массивом. www.1024cores.net/home/lock-free-algorithms/false-sharing---false. Вообще рекомендую этот блог для всех интересующихся многопоточностью.

Отличная статья. Спасибо.
при этом тот факт, что она sun.misc какбэ камекает, что это аннотация для разработчиков Java для использования внутри JDK, а не для программеров :)
как бе тонкий намёк, что разработчики java != программеры?

и sun.misc.Unsafe, и sun.misc.Cleaner часто используемые и как бы не мешает жить
часто используемые кем? Тобой? Или 99% java-программеров? Я вот вижу между ними и тобой некоторую разницу)))
Почему же только я? Тот же тов. Ш., тов. Ч., mr. Th., mr L. и им подобные

Впрочем, вряд ли человек не смотревший под юбку в sun.misc.Unsafe станет использовать sun.misc.Contented — одного поля ягода.
вас таких человек 10 в этой стране
В докладе ForkJoinPool в Java 8 Алексей Шипилёв (TheShade) с 1h2m20s по 1h8m20s рассказывает что такое false sharing и почему предложенный вами способ борьбы с ним (padding) не надежен.

Так же он рассказывает про надежный метод борьбы с false sharing: @sun.misc.Contended.
До выхода Java 8, к сожалению, sun.misc.Contended в production недоступен. Padding c применением наследования используется в jmh. Из BlackHole.java:
* 1. Superclass fields are not reordered with the subclass' fields.
* No practical VM that we are aware of is doing this. It is unpractical,
* because if the superclass fields are at the different offsets in two
* subclasses, the VMs would then need to do the polymorphic access for
* the superclass fields.
Не является ли борьба с False sharing экономией на спичках? То есть так — правильно ли я понял, что бороться с этим явлением стоит только в библиотеках уровня ядра для приложений, которые должны работать максимально быстро?
Совершенно верно, в 99% случаев это не нужно. Но если разрабатывется нечто похожее на LMAX Disruptor или многопоточный расчетный алгоритм, то нужно иметь в виду такой эффект.
Использование VTune или его аналогов на других платформах, поможет оценить эффективность HPC приложения на уровне счетчиков CPU.
Можете приоткрыть завесу тайны и рассказать, что же именно за задача такая?
Параллельная обработка на базе Storm framework. Я о нем писал на хабре.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории