Fix for meta issue: SL-14211 Determine optimum cache size for VFS replacement cache

meow-7.2.2
Callum Prentice 2020-10-27 13:53:17 -07:00
parent 581cb0a0e9
commit 391ada1150
3 changed files with 14 additions and 8 deletions

View File

@ -83,8 +83,8 @@ class LLDiskCache :
*/
const std::string cache_dir,
/**
* The maximum size of the cache in bytes - Defined by
* the setting at 'DiskCacheMaxSizeMB' (* 1024 * 1024)
* The maximum size of the cache in bytes - Based on the
* setting at 'CacheSize' and 'DiskCachePercentOfTotal'
*/
const int max_size_bytes,
/**

View File

@ -1362,16 +1362,16 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>DiskCacheMaxSizeMB</key>
<key>DiskCachePercentOfTotal</key>
<map>
<key>Comment</key>
<string>The maximum number of MB to use for the new disk cache</string>
<string>The percent of total cache size (defined by CacheSize) to use for the disk cache</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>U32</string>
<string>F32</string>
<key>Value</key>
<integer>50</integer>
<integer>20.0</integer>
</map>
<key>DiskCacheDirName</key>
<map>

View File

@ -4063,10 +4063,16 @@ bool LLAppViewer::initCache()
// initialize the new disk cache using saved settings
const std::string cache_dir_name = gSavedSettings.getString("DiskCacheDirName");
const unsigned int cache_max_bytes = gSavedSettings.getU32("DiskCacheMaxSizeMB") * 1024 * 1024;
// note that the maximum size of this cache is defined as a percentage of the
// total cache size - the 'CacheSize' pref - for all caches.
const unsigned int cache_total_size_mb = gSavedSettings.getU32("CacheSize");
const double disk_cache_percent = gSavedSettings.getF32("DiskCachePercentOfTotal");
const unsigned int disk_cache_mb = cache_total_size_mb * disk_cache_percent / 100;
const unsigned int disk_cache_bytes = disk_cache_mb * 1024 * 1024;
const bool enable_cache_debug_info = gSavedSettings.getBOOL("EnableDiskCacheDebugInfo");
const std::string cache_dir = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, cache_dir_name);
LLDiskCache::initParamSingleton(cache_dir, cache_max_bytes, enable_cache_debug_info);
LLDiskCache::initParamSingleton(cache_dir, disk_cache_bytes, enable_cache_debug_info);
bool texture_cache_mismatch = false;
if (gSavedSettings.getS32("LocalCacheVersion") != LLAppViewer::getTextureCacheVersion())