У меня есть вопрос относительно передачи данных с сервера - клиента. Данные отправляются клиентом после выполнения простого протокола. Но я обнаружил, что на стороне сервера есть задержка. Клиент и сервер тестируются на том же ПК, который имеет ядро i5 с SSD и 8 ГБ оперативной памяти.Задержка на стороне сервера
То, как я измерил задержку, после того, как клиенты говорят «Отправка», обе стороны записывают текущее системное время в миллисекундах. Сами данные - это текущее системное время, отправленное клиентом. Сервер проверяет, насколько он задерживается на стороне сервера. Он начинается с 0 мс и увеличивается до 90 мс и стабилизируется в течение 40 мс. Интересно, что эта задержка нормальная.
Вот код сервера (многопоточный):
....
while(!ScriptWillAcessHere){
inputLine = in.readLine();
//Greetings
if(i==0)
{
outputLine = SIMONSAYS.processInput(inputLine);
out.println(outputLine);
}
if(inputLine.equals("Sending")){
i = 1;
}
if(i>=1){ //Javascript will access this block
if(i==1){
StartTime = System.currentTimeMillis();
System.out.println(StartTime);
i++;
}
Differences = System.currentTimeMillis() - Double.parseDouble(inputLine);
saveSvr.write(Double.toString(Differences)+"\n");
...
//Checking elapsed time below:
}
}
Вот код клиента (один поток):
....
if(Client.equals("Sending"))
{
while(bTimer)
{
ins++;
local_time = System.currentTimeMillis();
out.println(local_time);
if(ins >= 100000)
{
out.println("End of Message");
break;
}
}
}
Спасибо,
ОК, ** есть проблема с производительностью в Double.parseDouble() в цикле while(). ** Я удалил этот код и изменил его на saveSvr.write (inputLine) и сравнил их в другом проекте. Они идентичны и нет задержки. – user1098761
Если это действительно решило вашу проблему, отправьте ее как ответ, а также убедитесь, что _accept_ это когда угодно. –