Олег Докука - Реактивный хардкор: как построить свой Publisher

Поделиться
HTML-код
  • Опубликовано: 4 дек 2024

Комментарии • 2

  • @stIncMale
    @stIncMale 6 лет назад +1

    AtomicLongFieldUpdater.getAndAdd​ (и остальные методы класса) работает с примитивным long, тогда как VarHandle.getAndAdd работает только с объектами. В моих тестах VarHandle.getAndAdd показал себя очень убого по сравнению с AtomicLong.getAndAdd (надо было ещё с AtomicLongFieldUpdater.getAndAdd сравнить конечно). Чужих тестов производительности этих методов я не нашел (может быть у меня проблема в тестах была, потому хотелось бы увидеть результаты других людей).

    • @olehdokuka8523
      @olehdokuka8523 6 лет назад

      AtomicLongFieldUpdater не должен отличаться от AtomicLong с точки перформанса. В реактивных библиотеках используеться AtomicLongFieldUpdater для того что бы уменьшить количество создаваемых Обьектов и уменьшить колово работы для GC. В RxJava2 такая же имплементация класса наследует AtomicLong github.com/ReactiveX/RxJava/blob/2.x/src/main/java/io/reactivex/internal/operators/flowable/FlowableFromArray.java#L179