📄 statistics.cc
字号:
/* $Id: statistics.cc,v 1.8 2005/08/02 19:45:32 jonathan Exp $ * Jonathan Ledlie, Harvard University. * Copyright 2005. All rights reserved. */#include "lb.h"void Statistics::clear () { startTime = cRound; psSum = 0; vsSum = 0; queryMsgCount = 0; maintMsgCount = 0; queryCount = 0; querySuccess = 0; splitVsCount = 0; transferVsSuccessCount = 0; transferVsCount = 0; deleteVsCount = 0; createVsCount = 0; vsAct = 0; birthCount = 0; deathCount = 0; hopSum = 0; reachableAttemptCount = 0; reachableSuccessCount = 0; hopSrcDstSum = 0;}void Statistics::add (Statistics *s) { psSum += s->psSum; ASSERT (psSum >= 0); vsSum += s->vsSum; ASSERT (vsSum >= 0); queryMsgCount += s->queryMsgCount; ASSERT (queryMsgCount >= 0); maintMsgCount += s->maintMsgCount; ASSERT (maintMsgCount >= 0); queryCount += s->queryCount; ASSERT (queryCount >= 0); querySuccess += s->querySuccess; ASSERT (querySuccess >= 0); splitVsCount += s->splitVsCount; ASSERT (splitVsCount >= 0); transferVsSuccessCount += s->transferVsSuccessCount; ASSERT (transferVsSuccessCount >= 0); transferVsCount += s->transferVsCount; ASSERT (transferVsCount >= 0); deleteVsCount += s->deleteVsCount; ASSERT (deleteVsCount >= 0); createVsCount += s->createVsCount; ASSERT (createVsCount >= 0); vsAct += s->vsAct; ASSERT (vsAct >= 0); birthCount += s->birthCount; ASSERT (birthCount >= 0); deathCount += s->deathCount; ASSERT (deathCount >= 0); hopSum += s->hopSum; ASSERT (hopSum >= 0); hopSrcDstSum += s->hopSrcDstSum; ASSERT (hopSrcDstSum >= 0); reachableAttemptCount += s->reachableAttemptCount; ASSERT (reachableAttemptCount >= 0); reachableSuccessCount += s->reachableSuccessCount; ASSERT (reachableSuccessCount >= 0);}//每经过一段时间记录发生的状况void Statistics::print (FILE *fp) { double diff = cRound - startTime; ASSERT (diff >= 0.); if (diff < 1.) diff = 1.; double succPct = 0; double avgHop = 0; double avgHopSrcDst = 0; double avgReachability = 0; if (reachableAttemptCount > 0) { avgHopSrcDst = (double)hopSrcDstSum/(double)reachableSuccessCount; avgReachability = (double)reachableSuccessCount/(double)reachableAttemptCount; } if (queryCount > 0) { succPct = (double)querySuccess/(double)queryCount; avgHop = (double)hopSum/(double)querySuccess; } double avgTransferSucc = 0.; if (transferVsCount > 0) avgTransferSucc = transferVsSuccessCount / (double)transferVsCount; fprintf (fp, "ps %6.2f vs %6.2f b %4.2f d %4.2f vsAct %4.2f q %4.2f qS %4.2f hops %5.3f rH %5.3f rP %1.3f cr %4.1f del %4.1f sp %4.1f trA %4.1f trS %4.1f rMsg %4.1f mMsg %4.1f\n", (psSum/diff), (vsSum/diff), (birthCount/diff), (deathCount/diff), (vsAct/diff), (queryCount/diff), succPct, avgHop, avgHopSrcDst, avgReachability, (createVsCount/diff), (deleteVsCount/diff), (splitVsCount/diff), (transferVsCount/diff), avgTransferSucc, (queryMsgCount/diff), (maintMsgCount/diff));}Statistics::Statistics () { clear ();}Statistics::~Statistics () {}void Statistics::birth (int act) { birthCount++;// vsAct += act;}void Statistics::death (int act) { deathCount++;//死掉的物理节点计数 vsAct += act;//删除的虚拟节点计数}void Statistics::hopSrcDst (bool reachable, int hopCount) { reachableAttemptCount++; if (reachable) { reachableSuccessCount++; hopSrcDstSum += hopCount; }}void Statistics::query (bool success, int hops) { queryCount++; if (success) { hopSum += hops; querySuccess++; }}void Statistics::psUp (int currPsUp) { psSum += currPsUp;}void Statistics::vsUp (int currVsUp) { vsSum += currVsUp;}void Statistics::queryMsg (int msg) { ASSERT (queryMsgCount >= 0); if (msg < 0) { ASSERT (msg >= 0); } queryMsgCount += msg;}void Statistics::maintMsg (int msg) { ASSERT (maintMsgCount >= 0 && msg >= 0); maintMsgCount += msg;}void Statistics::splitVs () { splitVsCount++; vsAct++;}void Statistics::transferVs (bool success) { transferVsCount++; if (success) transferVsSuccessCount++; vsAct++;}void Statistics::deleteVs () { deleteVsCount++; vsAct++;}void Statistics::createVs () { createVsCount++; vsAct++;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -