I'm working on improving the performance of our POE based application. Our application consists of clients built with POE::NFA that use a POE::Component::Client::TCP to connect to a server. It seems that we max CPU utilization at around 300 clients.
I'm making use of POE::Devel::Profiler, and I'm trying to trim the fat from our events as much as possible. However, I was wondering if there might be ways I can improve performance of the POE Kernel itself. Right now, we're using the default loop. Would Glib or some other loop perform better? Is there a particular kernel or system configuration that can significantly affect POE performance? Would sessions be significantly faster than NFAs? Is there a way to improve performance of the TCP client component? Also, does anyone know roughly how many events per second POE can handle? I did a barebones test that seemed to indicate 6000 events per second, but I don't think my test was representative of the conditions you have when you have hundreds of sessions throwing events around. Thanks.