для моего исследования я измеряю время, которое требуется, чтобы мобильный клиент (написанный на Flutter) подключился к серверу (написанный на Ktor) через Socket. Мое приложение подключается и отключается к сокету 10 раз, и мои результаты выглядят так (в миллисекундах):
[23, 19, 1, 1, 2, 1, 6, 2, 3, 1]
Может кто-нибудь объяснить мне, как это возможно, что после 1-2-3 подключений время для следующего занимает всего несколько миллисекунд?
Мой метод тестирования неправильный или под ним какой-то механизм Дартса?
Функции, которые подключают клиента:
void connectionLoop() {
_connectionTimesMultiple().then((connectionTime) {
_connectionTimes.add(connectionTime);
if (_connectionTimes.length < 10) {
connectionLoop();
} else {
print(_connectionTimes);
final numberInList = _connectionTimes.length;
final averageTime =
_connectionTimes.reduce((a, b) => a + b) / numberInList;
print(averageTime);
}
});
}
Future<int> _connectionTimesMultiple() async {
final stopwatch = Stopwatch()..start();
Socket sock = await Socket.connect('10.0.2.2', 8080);
final connectionTime = stopwatch.elapsedMilliseconds;
sock.close();
return connectionTime;
}
И он запускается простым нажатием кнопки.