On Mon, Aug 18, 2014 at 5:12 PM, Sean Zhong <[email protected]> wrote:
> I think there is a difference. > > The benchmark you showed have no flow control. the receiver actor mailbox > will always have message. So, Mailbox.run() will only resubmit itself when > throughput is met(1024 in the test case). > > So, take the throughput number from the benchmark "8,189,290 ops/s", > there will be only around 8000 executorService.execute(mbox) > > For a system with flow control, Mailbox.run() is more likely to finish > before throughput setting is met. And there will be far more > executorService.execute(mbox) be called. > Lock-step is the most degenerate case performance-wise. However, flow control does not mandate that type of behavior at all, Akka Streams is proof of that. Are you saying that executor.execute(mbox) is where most of your time is spent? Then choose another ExecutorService for your dispatcher. (It's fully pluggable and technically not related to Akka itself in terms of performance). > > > On Monday, August 18, 2014 10:51:38 PM UTC+8, √ wrote: > >> registerForExecution has to be called for every message. >> >> See the link I sent for both benchmark numbers and configuration for >> throughput. >> >> >> On Mon, Aug 18, 2014 at 4:25 PM, Sean Zhong <[email protected]> wrote: >> >>> Revise the typo. >>> >>> >>> When I send 300, 000 message from one actor to another (all local >>> actors), more than 90% time of the source actor is spent in Dispatcher. >>> registerForExecution(), inside it, there is call >>> "executorService.execute(mbox)" >>> >>> The Mailbox.run() logic looks like this: It will first try to process >>> all pending messages in mailbox, when there is no pending messages, then >>> current runnable will exit. So for the worst case, one call to >>> Mailbox.run() can only process 1 message, and then exit. >>> >>> So 300, 000 messages dispatch will have to call Dispatcher. >>> registerForExecution() --> executorService.execute(mbox) for 300, 000 >>> times, which will have performance problems. >>> >>> What we can do for this to improve performance? 300, 000 message per >>> pair of actors is not good enough. >>> >>> >>> -- >>> >>>>>>>>>> Read the docs: http://akka.io/docs/ >>> >>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/ >>> current/additional/faq.html >>> >>>>>>>>>> Search the archives: https://groups.google.com/ >>> group/akka-user >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "Akka User List" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> >>> Visit this group at http://groups.google.com/group/akka-user. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> Cheers, >> √ >> > -- > >>>>>>>>>> Read the docs: http://akka.io/docs/ > >>>>>>>>>> Check the FAQ: > http://doc.akka.io/docs/akka/current/additional/faq.html > >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user > --- > You received this message because you are subscribed to the Google Groups > "Akka User List" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/akka-user. > For more options, visit https://groups.google.com/d/optout. > -- Cheers, √ -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
