@@ -13,26 +13,20 @@ CacheSizes CalculateCacheSizes(const ArgsManager& args, size_t n_indexes)
13
13
int64_t nTotalCache = (args.GetArg (" -dbcache" , nDefaultDbCache) << 20 );
14
14
nTotalCache = std::max (nTotalCache, nMinDbCache << 20 ); // total cache cannot be less than nMinDbCache
15
15
nTotalCache = std::min (nTotalCache, nMaxDbCache << 20 ); // total cache cannot be greater than nMaxDbcache
16
- int64_t nBlockTreeDBCache = std::min (nTotalCache / 8 , nMaxBlockDBCache << 20 );
17
- nTotalCache -= nBlockTreeDBCache;
18
- int64_t nTxIndexCache = std::min (nTotalCache / 8 , args.GetBoolArg (" -txindex" , DEFAULT_TXINDEX) ? nMaxTxIndexCache << 20 : 0 );
19
- nTotalCache -= nTxIndexCache;
20
- int64_t filter_index_cache = 0 ;
16
+ CacheSizes sizes;
17
+ sizes.block_tree_db = std::min (nTotalCache / 8 , nMaxBlockDBCache << 20 );
18
+ nTotalCache -= sizes.block_tree_db ;
19
+ sizes.tx_index = std::min (nTotalCache / 8 , args.GetBoolArg (" -txindex" , DEFAULT_TXINDEX) ? nMaxTxIndexCache << 20 : 0 );
20
+ nTotalCache -= sizes.tx_index ;
21
+ sizes.filter_index = 0 ;
21
22
if (n_indexes > 0 ) {
22
23
int64_t max_cache = std::min (nTotalCache / 8 , max_filter_index_cache << 20 );
23
- filter_index_cache = max_cache / n_indexes;
24
- nTotalCache -= filter_index_cache * n_indexes;
24
+ sizes. filter_index = max_cache / n_indexes;
25
+ nTotalCache -= sizes. filter_index * n_indexes;
25
26
}
26
- int64_t nCoinDBCache = std::min (nTotalCache / 2 , (nTotalCache / 4 ) + (1 << 23 )); // use 25%-50% of the remainder for disk cache
27
- nCoinDBCache = std::min (nCoinDBCache, nMaxCoinsDBCache << 20 ); // cap total coins db cache
28
- nTotalCache -= nCoinDBCache;
29
- int64_t nCoinCacheUsage = nTotalCache; // the rest goes to in-memory cache
30
-
31
- return {
32
- nBlockTreeDBCache,
33
- nCoinDBCache,
34
- nCoinCacheUsage,
35
- nTxIndexCache,
36
- filter_index_cache,
37
- };
27
+ sizes.coins_db = std::min (nTotalCache / 2 , (nTotalCache / 4 ) + (1 << 23 )); // use 25%-50% of the remainder for disk cache
28
+ sizes.coins_db = std::min (sizes.coins_db , nMaxCoinsDBCache << 20 ); // cap total coins db cache
29
+ nTotalCache -= sizes.coins_db ;
30
+ sizes.coins = nTotalCache; // the rest goes to in-memory cache
31
+ return sizes;
38
32
}
0 commit comments