2013-11-20 13 views
6

Cercare di utilizzare Akka Actors per comunicare eventi tra thread Java nella stessa JVM. Alcuni di questi eventi contengono oggetti di grandi dimensioni (10-100Mb). Voglio evitare di serializzare questi oggetti risparmiando spazio sulla memoria passando solo un riferimento all'oggetto; Akka supporta questo? Capisco che sia possibile creare un serializzatore Akka personalizzato, e che potrebbe essere una soluzione, ma al di là di questo non so molto altro sul framework.Akka supporta la messaggistica in-process senza serializzazione dell'oggetto?

+0

Il passaggio di un riferimento implica uno stato condiviso tra thread, che è completamente anatema al modello che passa il messaggio. –

+3

Lo so, ma gli oggetti che sto passando contengono valori immutabili, è inutile serializzarli e ricostituirli tra attori, quindi prendo la risposta no? – raffian

+0

Lo stato condiviso non è un problema finché non è mutabile. Il problema è _shared stato mutevole_. Dimentica uno di quelli condivisi o mutevoli e sei su un terreno più solido. –

risposta

6

Akka considera il passaggio del messaggio locale come un'ottimizzazione, ignorando il meccanismo di controllo remoto che include il serializzatore di messaggi. Vedi location transparency.

+1

Ho appena provato questo, e tu sei corretto; l'oggetto inviato era lo stesso dell'oggetto ricevuto in base all'indirizzo di memoria. – raffian

+1

C'è qualche posto dove questo è documentato? – jhegedus

Problemi correlati