From e3ed6adf91180f11edd407432bda16aa5f474dde Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 19 Mar 2009 13:42:10 +0000 Subject: 2009-03-19 Tatsuhiro Tsujikawa Reduced the number of calls to PeerStorage::calculateStat() and SegmentMan::calculateDownloadSpeed() to lower CPU usage on higher transfer rate. * src/DefaultBtInteractive.cc * src/DefaultBtMessageDispatcher.cc * src/DefaultPeerStorage.cc * src/DefaultPeerStorage.h * src/DownloadCommand.cc * src/DownloadEngine.cc * src/PeerStorage.h * src/SegmentMan.cc * src/SegmentMan.h * test/MockPeerStorage.h --- src/DefaultPeerStorage.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/DefaultPeerStorage.h') diff --git a/src/DefaultPeerStorage.h b/src/DefaultPeerStorage.h index f0164960..3dbff14d 100644 --- a/src/DefaultPeerStorage.h +++ b/src/DefaultPeerStorage.h @@ -37,6 +37,10 @@ #include "PeerStorage.h" +#include + +#include "TimeA2.h" + namespace aria2 { class BtContext; @@ -61,6 +65,10 @@ private: BtSeederStateChoke* _seederStateChoke; BtLeecherStateChoke* _leecherStateChoke; + std::map _peerTransferStatMap; + + Time _lastTransferStatMapUpdated; + bool isPeerAlreadyAdded(const SharedHandle& peer); public: DefaultPeerStorage(const SharedHandle& btContext, @@ -86,6 +94,8 @@ public: virtual TransferStat calculateStat(); + virtual void updateTransferStatFor(const SharedHandle& peer); + virtual void returnPeer(const SharedHandle& peer); virtual bool chokeRoundIntervalElapsed(); -- cgit