【发布时间】:2019-03-15 10:01:36
【问题描述】:
对于我的研究,我正在测量移动客户端(用 Flutter 编写)通过 Socket 连接到服务器(用 Ktor 编写)所需的时间。我的应用程序连接和断开套接字 10 次,我的结果是这样的(以毫秒为单位):
[23, 19, 1, 1, 2, 1, 6, 2, 3, 1]
有人可以向我解释一下,在 1-2-3 次连接之后,下一次连接的时间怎么可能只需要几毫秒?
是我的测试方法错误还是它下面的某种 Dart 机制?
连接客户端的函数:
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;
}
它是由一个简单的按钮点击触发的。
【问题讨论】: