Чтобы быть более конкретным, я написал сервер с java NIO, и он работает хорошо, после некоторого тестирования я узнал, что по какой-то причине в среднем вызов метода записи SocketChannels занимает 1 мс, метод чтения на с другой стороны, в среднем 0,22 мс.java networking, звонки на запись в среднем на 4 раза больше, чем на чтение, это нормально?
Теперь я думал, что установка значений передаваемого/принимаемого буфера на Socket может немного помочь, но, подумав об этом, все сообщения очень короткие (несколько байтов), и я отправляю сообщение о каждых 2 секунд на одном соединении. Оба отправляемых и принимаемых буферов имеют размер более 1024 байта, поэтому это не может быть проблемой, у меня есть сразу несколько тысяч клиентов.
Теперь я немного устал от этого, это нормально, и если да, то почему?
Поскольку вы используете NIO, я предполагаю, что вы используете селектор и записываете только тогда, когда ключ готов для записи, или вы используете блокирующие вызовы? Не могли бы вы получить образец кода? – Nuoji