git-svn-id: svn://elaine/murooma/trunk@284 d8a302eb-03bc-478d-80e4-98257eca68ef

This commit is contained in:
(no author) 2014-09-21 09:52:34 +00:00
parent 7467141a14
commit e33ffbd4e6
4 changed files with 11 additions and 5 deletions

View file

@ -118,13 +118,13 @@ void Controller::worker()
{ {
while (active_) while (active_)
{ {
usleep(1000000); usleep(500*1000);
shared_ptr<TimeMsg> reply = clientConnection->sendReq<TimeMsg>(&timeReq, 1000); shared_ptr<TimeMsg> reply = clientConnection->sendReq<TimeMsg>(&timeReq, 1000);
if (reply) if (reply)
{ {
double latency = (reply->received.sec - reply->sent.sec) + (reply->received.usec - reply->sent.usec) / 1000000.; double latency = (reply->received.sec - reply->sent.sec) + (reply->received.usec - reply->sent.usec) / 1000000.;
TimeProvider::getInstance().setDiffToServer((reply->latency - latency) * 1000 / 2); TimeProvider::getInstance().setDiffToServer((reply->latency - latency) * 1000 / 2);
cout << TimeProvider::getInstance().getDiffToServer() << "\n"; cout << "Median: " << TimeProvider::getInstance().getDiffToServer() << "\n";
} }
} }
} }

View file

@ -38,13 +38,13 @@ public:
return mean; return mean;
} }
T percentil(unsigned int percentil) const T percentile(unsigned int percentile) const
{ {
if (buffer.empty()) if (buffer.empty())
return 0; return 0;
std::deque<T> tmpBuffer(buffer.begin(), buffer.end()); std::deque<T> tmpBuffer(buffer.begin(), buffer.end());
std::sort(tmpBuffer.begin(), tmpBuffer.end()); std::sort(tmpBuffer.begin(), tmpBuffer.end());
return tmpBuffer[(size_t)(tmpBuffer.size() * ((float)percentil / (float)100))]; return tmpBuffer[(size_t)(tmpBuffer.size() * ((float)percentile / (float)100))];
} }
inline bool full() const inline bool full() const

View file

@ -3,7 +3,7 @@
TimeProvider::TimeProvider() : diffToServer(0) TimeProvider::TimeProvider() : diffToServer(0)
{ {
diffBuffer.setSize(60); diffBuffer.setSize(120);
} }
@ -26,4 +26,9 @@ long TimeProvider::getDiffToServerMs()
} }
long TimeProvider::getPercentileDiffToServer(size_t percentile)
{
return diffBuffer.percentile(percentile);
}

View file

@ -14,6 +14,7 @@ public:
void setDiffToServer(double ms); void setDiffToServer(double ms);
long getDiffToServer(); long getDiffToServer();
long getPercentileDiffToServer(size_t percentile);
long getDiffToServerMs(); long getDiffToServerMs();
private: private: