diff --git a/ChangeLog b/ChangeLog index f020dac5..917965f7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-03-02 Tatsuhiro Tsujikawa + + Reserved vector elements based on profiler results. + * src/DefaultBtInteractive.cc + * src/DefaultBtProgressInfoFile.cc + 2010-03-01 Tatsuhiro Tsujikawa Avoid to calculate end() iterator in each loop. std::deque is diff --git a/src/DefaultBtInteractive.cc b/src/DefaultBtInteractive.cc index 97ca785c..966c7547 100644 --- a/src/DefaultBtInteractive.cc +++ b/src/DefaultBtInteractive.cc @@ -328,6 +328,7 @@ void DefaultBtInteractive::fillPiece(size_t maxMissingBlock) { if(peer->peerChoking()) { if(peer->isFastExtensionEnabled()) { std::vector excludedIndexes; + excludedIndexes.reserve(btRequestFactory->countTargetPiece()); btRequestFactory->getTargetPieceIndexes(excludedIndexes); while(numMissingBlock < maxMissingBlock) { SharedHandle piece = @@ -343,6 +344,7 @@ void DefaultBtInteractive::fillPiece(size_t maxMissingBlock) { } } else { std::vector excludedIndexes; + excludedIndexes.reserve(btRequestFactory->countTargetPiece()); btRequestFactory->getTargetPieceIndexes(excludedIndexes); while(numMissingBlock < maxMissingBlock) { SharedHandle piece = @@ -366,6 +368,7 @@ void DefaultBtInteractive::addRequests() { 0 : _maxOutstandingRequest-dispatcher->countOutstandingRequest(); if(reqNumToCreate > 0) { std::vector > requests; + requests.reserve(reqNumToCreate); if(_pieceStorage->isEndGame()) { btRequestFactory->createRequestMessagesOnEndGame(requests,reqNumToCreate); } else { diff --git a/src/DefaultBtProgressInfoFile.cc b/src/DefaultBtProgressInfoFile.cc index c439c944..e36bdb37 100644 --- a/src/DefaultBtProgressInfoFile.cc +++ b/src/DefaultBtProgressInfoFile.cc @@ -180,6 +180,7 @@ void DefaultBtProgressInfoFile::save() o.write(reinterpret_cast(&numInFlightPieceNL), sizeof(numInFlightPieceNL)); std::vector > inFlightPieces; + inFlightPieces.reserve(_pieceStorage->countInFlightPiece()); _pieceStorage->getInFlightPieces(inFlightPieces); for(std::vector >::const_iterator itr = inFlightPieces.begin(), eoi = inFlightPieces.end(); @@ -345,6 +346,7 @@ void DefaultBtProgressInfoFile::load() numInFlightPiece = ntohl(numInFlightPiece); } std::vector > inFlightPieces; + inFlightPieces.reserve(numInFlightPiece); while(numInFlightPiece--) { uint32_t index; in.read(reinterpret_cast(&index), sizeof(index));