Il NIO Java non bloccante è ancora più lento del thread asincrono della connessione thread standard per connessione?thread Java per modello di connessione e NIO
Inoltre, se si dovessero utilizzare thread per connessione, si dovrebbero semplicemente creare nuovi thread o si utilizzerà un pool di thread molto grande?
Sto scrivendo un server MMORPG in Java che dovrebbe essere in grado di scalare facilmente 10000 client con un hardware abbastanza potente, anche se la quantità massima di client è 24000 (che credo sia impossibile raggiungere per il thread per modello di connessione perché di un limite di thread di 15000 in Java). Da un articolo di tre anni, ho sentito che il blocco dell'IO con un thread per modello di connessione era ancora il 25% più veloce di NIO (ovvero, questo documento http://www.mailinator.com/tymaPaulMultithreaded.pdf), ma lo stesso può ancora essere raggiunto in questo giorno? Java è cambiato molto da allora, e ho sentito che i risultati erano discutibili quando si confrontano scenari di vita reale perché la VM utilizzata non era Sun Java. Inoltre, poiché si tratta di un server MMORPG con molti utenti simultanei che interagiscono tra loro, l'utilizzo delle procedure di sincronizzazione e sicurezza dei thread diminuirà le prestazioni fino al punto in cui un selettore NIO a thread singolo che serve 10000 client sarà più veloce? (tutto il lavoro non necessario deve essere elaborato sul thread con il selettore, può essere elaborato su thread di lavoro come MINA/Netty funziona).
Grazie!
I thread 10k non sono una vittoria per qualsiasi server (* commodity *) :-) Inoltre, i client attivi 10k su una singola casella sono molto ... improbabili. –
@ pst: se per merce intendi; Non quantico, ancora da scoprire tipo di tecnologia, sono totalmente d'accordo. Penso che il minimo dei problemi di Kevin sia il numero di thread. Mi scuso per non avere alcun input utile in merito. Ricorda anche il QOTD: Test. –
@pst Oh dolce JRE è elastico! Hai appena reso la mia giornata utile. –