2013-08-26 14 views
7

Il mio requisito è che sto cercando un framework di eventi leggero compatibile con Android e Java Fx (piattaforma Windows e Linux) in modo che funzioni senza problemi in entrambe le tecnologie.android e javafx framework leggero compatibile per eventi

Ho ricercato per quadri basati su eventi esistenti.
1) Eventing framework mbassador (by bennidi) -> è compatibile con Android 4.0 (Ice Cream Sandwich) come funziona bene con javafx ed è leggero e le prestazioni sono anche buone.
2) EventBus Guava: - Dalla documentazione sembra compatibile con Android ma per quanto riguarda le prestazioni ed è meglio di mbassador.

+0

Quindi, qual è la domanda? –

risposta

7

Eventing framework MBassador è compatibile con Android 4.0.
Guava Event Bus è leggero e compatibile anche con entrambe le tecnologie.

Sia il quadro sopra sono leggeri e forniscono il meccanismo robusto per Subscribe/Publish modello e secondo descrizione MBassador E 'progetto iniziale è stato ispirato dalla Guava Event Bus ma il forte richiamo agli ascoltatori utilizzati in Guava Event Bus stato problema in qualche scenario.

Secondo la sezione crediti nella descrizione a GitHub MBassador

L'ispirazione iniziale per la creazione di questo componente è venuto da provare implementazione bus evento di Google Guava. Mi è piaciuta la semplicità del suo design e mi fido molto degli sviluppatori di Google, quindi sono stato felice di scoprire che hanno anche fornito un sistema di bus per eventi. Il motivo principale per cui è risultato inutilizzabile per il nostro scenario era che utilizza forti riferimenti agli ascoltatori in modo tale che ogni oggetto debba essere esplicitamente cancellato. Questo è stato difficile nel nostro ambiente gestito da Spring. Infine, ho deciso di creare un'implementazione personalizzata, che è poi maturata per essere stabile, estendibile ma molto efficiente

Entrambe le strutture sono robuste, leggere e dipendono dal requisito che si desidera utilizzare.

ho trovato confronto le prestazioni su [Java confronto biblioteca bus evento]] (http://codeblock.engio.net/?p=37) (ho avuto i risultati di Google Page cache di questo sito) in cui Google Guava, SimpleBus, EventBus e mbassador quadri sono stati confrontati e MBassador era il chiaro vincitore.

EDIT: ho rimosso l'istantanea dell'immagine e concentrarsi solo sui risultati finali,

Le caratteristiche di prestazione riportate delle implementazioni a confronto indicano che,
1. abbonamento Listener è un'operazione costosa per tutte le implementazioni ma MBassador e Guava
2. L'accesso simultaneo generalmente rallenta le prestazioni del bus a causa della maggiore contesa/sincronizzazione .
3. SimpleBus è di gran lunga l'implementazione più lenta.
4. MBassador è l'implementazione di gran lunga più veloce in tutti gli scenari . Offre inoltre le migliori caratteristiche di ridimensionamento, il che significa che tassi di concorrenza più elevati non rallentano le prestazioni del bus tanto quanto gli altri.Questo perché MBassador si basa su una struttura dati personalizzata con operazioni di scrittura molto veloci che non bloccano i lettori e allo stesso tempo non copiano strutture di dati esistenti (la maggior parte delle altre implementazioni utilizza CopyOnWriteArrayList).

Per riassumere Negli ultimi mesi abbiamo usato MBassador e può contenere fino a nostro requisito si sta lavorando bene in Android, JavaFX e funziona bene in semplice java troppo sul Sistema operativo Linux, Windows, Mac ecc

+1

È disponibile un nuovo benchmark delle prestazioni di Guava e MBassador. I grafici mostrano dettagli interessanti sulle caratteristiche dell'autobus: https://github.com/bennidi/eventbus-performance – bennidi

Problemi correlati