mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-10 22:18:54 +01:00
cuckoocache: Return approximate memory size
Returning the approximate total size eliminates the need for InitS*Cache() to do nElems*sizeof(uint256). The cuckoocache has a better idea of this information.
This commit is contained in:
@@ -75,7 +75,7 @@ public:
|
||||
std::unique_lock<std::shared_mutex> lock(cs_sigcache);
|
||||
setValid.insert(entry);
|
||||
}
|
||||
uint32_t setup_bytes(size_t n)
|
||||
std::pair<uint32_t, size_t> setup_bytes(size_t n)
|
||||
{
|
||||
return setValid.setup_bytes(n);
|
||||
}
|
||||
@@ -92,14 +92,18 @@ static CSignatureCache signatureCache;
|
||||
|
||||
// To be called once in AppInitMain/BasicTestingSetup to initialize the
|
||||
// signatureCache.
|
||||
void InitSignatureCache()
|
||||
bool InitSignatureCache()
|
||||
{
|
||||
// nMaxCacheSize is unsigned. If -maxsigcachesize is set to zero,
|
||||
// setup_bytes creates the minimum possible cache (2 elements).
|
||||
size_t nMaxCacheSize = std::min(std::max((int64_t)0, gArgs.GetIntArg("-maxsigcachesize", DEFAULT_MAX_SIG_CACHE_SIZE) / 2), MAX_MAX_SIG_CACHE_SIZE) * ((size_t) 1 << 20);
|
||||
size_t nElems = signatureCache.setup_bytes(nMaxCacheSize);
|
||||
|
||||
auto setup_results = signatureCache.setup_bytes(nMaxCacheSize);
|
||||
|
||||
const auto [num_elems, approx_size_bytes] = setup_results;
|
||||
LogPrintf("Using %zu MiB out of %zu/2 requested for signature cache, able to store %zu elements\n",
|
||||
(nElems*sizeof(uint256)) >>20, (nMaxCacheSize*2)>>20, nElems);
|
||||
approx_size_bytes >> 20, (nMaxCacheSize * 2) >> 20, num_elems);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CachingTransactionSignatureChecker::VerifyECDSASignature(const std::vector<unsigned char>& vchSig, const CPubKey& pubkey, const uint256& sighash) const
|
||||
|
||||
Reference in New Issue
Block a user