Pour être plus précis, j'ai écrit un serveur avec Java NIO, et il fonctionne bien, après quelques tests, j'ai découvert que pour une raison quelconque, un appel à la méthode d'écriture SocketChannels prend en moyenne 1 ms, la méthode read l'autre main prend 0.22ms en moyenne. Au début, je pensais que régler les valeurs de tampon d'envoi/réception sur Socket pourrait aider un peu, mais après y avoir réfléchi, tous les messages sont très courts (quelques octets) et j'envoie un message à peu près tous les 2. secondes sur une seule connexion. Les tampons envoyés et reçus ont une taille bien supérieure à 1024 octets, donc ce n'est pas vraiment le problème, j'ai plusieurs milliers de clients connectés à la fois.Java mise en réseau, les appels à écrire en moyenne prendre 4x plus long que les appels à lire, est-ce normal?
Maintenant, je suis un peu hors des idées sur ce sujet, est-ce normal et si c'est le cas, pourquoi?
Étant donné que vous utilisez NIO, je suppose que vous utilisez un sélecteur et n'écrivez que lorsque la clé est prête pour l'écriture ou utilisez-vous des appels bloquants? Voulez-vous nous obtenir un échantillon du code? – Nuoji