diff --git a/src/dht.cpp b/src/dht.cpp
index 7bd72f92853a4285d3648115111ad088c082493c..dc66511b39308d0d08a717eb7663138ced61d63a 100644
--- a/src/dht.cpp
+++ b/src/dht.cpp
@@ -115,6 +115,7 @@ Dht::getPublicAddress(sa_family_t family)
         return a.first > b.first;
     });
     std::vector<SockAddr> ret;
+    ret.reserve(!family ? reported_addr.size() : reported_addr.size()/2);
     for (const auto& addr : reported_addr)
         if (!family || family == addr.second.getFamily())
             ret.emplace_back(addr.second);