⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 statistics.cc

📁 这是关于覆盖网的各种负载均衡算法的程序。好好研究
💻 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 + -