Skip to content

Instantly share code, notes, and snippets.

@mifkamaz
Last active May 25, 2017 08:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mifkamaz/34ddca7ae2665037560a4c8ba1bc741b to your computer and use it in GitHub Desktop.
Save mifkamaz/34ddca7ae2665037560a4c8ba1bc741b to your computer and use it in GitHub Desktop.

Сравнение EventBus и Otto

В EventBus от Greenrobot и Otto есть общая методология работы (register, post, unregister, ...), но есть отличия, которые можно посмотреть в следующей таблице:

EventBus Otto
Описание методов для обработки событий Аннотации (начиния с версии 3.0 предварительно обрабатываемые аннотации, для увеличения производительности) Аннотации
Наследование событий Да Да
Наследование подписчиков Да Не
Кеширование последних событий Да, sticky событие Нет
Генератор событий (например для кодирования кешированых событий ) Нет Да
Доставка событий в публикующем потоке Да (По умолчанию) Да
Доставка событий в главном потоке Да Нет
Доставка событий в фоновом потоке Да Нет
Ассинхронная доставка событий Да Нет

Заметка: Приведенная ниже информация устрела, т.к. тест был проведен на версии EventBus 2.+, а версии 3.0 появились предварительно обработанные аннотации, которые работают значительно быстрее.

Т.к. производительность библиотек различается, было создано Android приложение, что бы провести тесты производительности (оно находится в официальном репозитории EventBux (EventBusPerformance). Для сравнения вы можете запустить его на своем устройстве.

TODO: Обновить для EventBus 3 с и без индексирования.

Результаты benchmark'а показывают что EventBus быстрее практически в каждом тесте:

EventBus Otto
Публикация 1000 событий, Android 2.3 emulator ~70% faster
Публикация 1000 событий, S3 Android 4.0 ~110% быстрее
Регистрация 1000 подписчиков, Android 2.3 emulator ~10% быстрее
Регистрация 1000 подписчиков, S3 Android 4.0 ~70% быстрее
Регистрация подписчиков, холодный старт, Android 2.3 emulator ~350% быстрее
Регистрация подписчиков, холодный старт, S3 Android 4.0 Одинаково
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment