EventBus与Otto特性与性能对比

       Otto和EventBus(消息总线EventBus简介)一样是一个事件总线库,实际上Otto是fork的Guava’s EventBus。Greenrobot’s EventBus和Otto都有一些相同的语义的操作(register,post,unregister,…),下面的表格中对EventBus和Otto的特性进行对比: eventbus_otto_feature_comparison        除了特性,还有性能的对比。结果显示EventBus在各个方面都明显比Otto更快。

different scenario EventBus Otto
Posting 1000 events, Android 2.3 emulator ~70% faster
Posting 1000 events, S3 Android 4.0 ~110% faster
Register 1000 subscribers, Android 2.3 emulator ~10% faster
Register 1000 subscribers, S3 Android 4.0 ~70% faster
Register subscribers cold start, Android 2.3 emulator ~350% faster
Register subscribers cold start, S3 Android 4.0 About the same

为什么EventBus性能优于Otto呢?

       很重要的原因是EventBus采用的是Name conventions(命名惯例)确定订阅者(onEvent,onEventMainThread…),这里恰好是采用了一种软件设计范式:约定优于配置(convention over configuration),也称作按约定编程,旨在减少软件开发人员需做决策的数量,简单的同时又不失灵活性。而Otto是采用的Annotations,我们知道注解在Android系统中性能并不高。



  copyright@黑月神话,转载请注明出处:vjson.com

发表评论