Encadeamento Java por Modelo de Conexão vs NIO

O Java NIO sem bloqueio ainda é mais lento que o seu thread padrão por soquete assíncrono de conexão?

Além disso, se você usasse threads por conexão, criaria novos threads ou usaria um pool de segmentos muito grande?

Estou escrevendo um servidor MMORPG em Java que deve ser capaz de escalar 10000 clientes com facilidade, com hardware suficientemente poderoso, embora a quantidade máxima de clientes seja 24000 (o que eu acredito que é impossível acessar o modelo de thread por conexão por causa de um thread de 15000 limite em Java). Em um artigo de três anos, ouvi dizer que o bloqueio de E / S com um modelo de thread por conexão ainda era 25% mais rápido que o NIO (ou seja, este documentohttp://www.mailinator.com/tymaPaulMultithreaded.pdf), mas o mesmo ainda pode ser alcançado neste dia? O Java mudou muito desde então, e ouvi dizer que os resultados eram questionáveis ao comparar cenários da vida real porque a VM usada não era o Sun Java. Além disso, como é um servidor MMORPG com muitos usuários simultâneos interagindo, o uso de práticas de sincronização e segurança de encadeamento diminuirá o desempenho ao ponto em que um único seletor NIO encadeado que atende a 10000 clientes será mais rápido? (todo o trabalho não precisa ser processado no thread com o seletor, ele pode ser processado nos threads de trabalho, como o MINA / Netty funciona).

Obrigado!

questionAnswers(6)

yourAnswerToTheQuestion