浏览代码

2010-03-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Reserved vector elements based on profiler results.
	* src/DefaultBtInteractive.cc
	* src/DefaultBtProgressInfoFile.cc
Tatsuhiro Tsujikawa 15 年之前
父节点
当前提交
18ea756a74
共有 3 个文件被更改,包括 11 次插入0 次删除
  1. 6 0
      ChangeLog
  2. 3 0
      src/DefaultBtInteractive.cc
  3. 2 0
      src/DefaultBtProgressInfoFile.cc

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+2010-03-02  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Reserved vector elements based on profiler results.
+	* src/DefaultBtInteractive.cc
+	* src/DefaultBtProgressInfoFile.cc
+
 2010-03-01  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Avoid to calculate end() iterator in each loop. std::deque is

+ 3 - 0
src/DefaultBtInteractive.cc

@@ -328,6 +328,7 @@ void DefaultBtInteractive::fillPiece(size_t maxMissingBlock) {
     if(peer->peerChoking()) {
       if(peer->isFastExtensionEnabled()) {
         std::vector<size_t> excludedIndexes;
+        excludedIndexes.reserve(btRequestFactory->countTargetPiece());
         btRequestFactory->getTargetPieceIndexes(excludedIndexes);
         while(numMissingBlock < maxMissingBlock) {
           SharedHandle<Piece> piece =
@@ -343,6 +344,7 @@ void DefaultBtInteractive::fillPiece(size_t maxMissingBlock) {
       }
     } else {
       std::vector<size_t> excludedIndexes;
+      excludedIndexes.reserve(btRequestFactory->countTargetPiece());
       btRequestFactory->getTargetPieceIndexes(excludedIndexes);
       while(numMissingBlock < maxMissingBlock) {
         SharedHandle<Piece> piece =
@@ -366,6 +368,7 @@ void DefaultBtInteractive::addRequests() {
     0 : _maxOutstandingRequest-dispatcher->countOutstandingRequest();
   if(reqNumToCreate > 0) {
     std::vector<SharedHandle<BtMessage> > requests;
+    requests.reserve(reqNumToCreate);
     if(_pieceStorage->isEndGame()) {
       btRequestFactory->createRequestMessagesOnEndGame(requests,reqNumToCreate);
     } else {

+ 2 - 0
src/DefaultBtProgressInfoFile.cc

@@ -180,6 +180,7 @@ void DefaultBtProgressInfoFile::save()
     o.write(reinterpret_cast<const char*>(&numInFlightPieceNL),
             sizeof(numInFlightPieceNL));
     std::vector<SharedHandle<Piece> > inFlightPieces;
+    inFlightPieces.reserve(_pieceStorage->countInFlightPiece());
     _pieceStorage->getInFlightPieces(inFlightPieces);
     for(std::vector<SharedHandle<Piece> >::const_iterator itr =
           inFlightPieces.begin(), eoi = inFlightPieces.end();
@@ -345,6 +346,7 @@ void DefaultBtProgressInfoFile::load()
       numInFlightPiece = ntohl(numInFlightPiece);
     }
     std::vector<SharedHandle<Piece> > inFlightPieces;
+    inFlightPieces.reserve(numInFlightPiece);
     while(numInFlightPiece--) {
       uint32_t index;
       in.read(reinterpret_cast<char*>(&index), sizeof(index));