mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-02-03 02:14:16 +00:00
Limit max cache to 1800MiB for 32bits compiled binaries and to 4GiB for other. Closes #1698.
This commit is contained in:
parent
97cf824c4d
commit
7763a6d2d5
@ -170,7 +170,15 @@ private slots:
|
||||
const Preferences* const pref = Preferences::instance();
|
||||
// Disk write cache
|
||||
spin_cache.setMinimum(0);
|
||||
spin_cache.setMaximum(2048);
|
||||
// When build as 32bit binary, set the maximum at less than 2GB to prevent crashes.
|
||||
// These macros may not be available on compilers other than MSVC and GCC
|
||||
#if !defined(_M_X64) || !defined(__amd64__)
|
||||
//1800MiB to leave 248MiB room to the rest of program data in RAM
|
||||
spin_cache.setMaximum(1800);
|
||||
#else
|
||||
// 4GiB
|
||||
spin_cache.setMaximum(4*1024);
|
||||
#endif
|
||||
spin_cache.setValue(pref->diskCacheSize());
|
||||
updateCacheSpinSuffix(spin_cache.value());
|
||||
setRow(DISK_CACHE, tr("Disk write cache size"), &spin_cache);
|
||||
|
@ -1098,11 +1098,37 @@ void Preferences::setShutdownqBTWhenDownloadsComplete(bool shutdown) {
|
||||
}
|
||||
|
||||
uint Preferences::diskCacheSize() const {
|
||||
return value("Preferences/Downloads/DiskWriteCacheSize", 0).toUInt();
|
||||
uint size = value("Preferences/Downloads/DiskWriteCacheSize", 0).toUInt();
|
||||
|
||||
// When build as 32bit binary, set the maximum at less than 2GB to prevent crashes.
|
||||
// These macros may not be available on compilers other than MSVC and GCC
|
||||
#if !defined(_M_X64) || !defined(__amd64__)
|
||||
//1800MiB to leave 248MiB room to the rest of program data in RAM
|
||||
if (size > 1800)
|
||||
size = 1800;
|
||||
#else
|
||||
// 4GiB
|
||||
if (size > 4*1024)
|
||||
size = 4*1024;
|
||||
#endif
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
void Preferences::setDiskCacheSize(uint size) {
|
||||
setValue("Preferences/Downloads/DiskWriteCacheSize", size);
|
||||
uint size0 = size;
|
||||
|
||||
#if !defined(_M_X64) || !defined(__amd64__)
|
||||
//1800MiB to leave 248MiB room to the rest of program data in RAM
|
||||
if (size0 > 1800)
|
||||
size0 = 1800;
|
||||
#else
|
||||
// 4GiB
|
||||
if (size0 > 4*1024)
|
||||
size0 = 4*1024;
|
||||
#endif
|
||||
|
||||
setValue("Preferences/Downloads/DiskWriteCacheSize", size0);
|
||||
}
|
||||
|
||||
uint Preferences::diskCacheTTL() const {
|
||||
|
Loading…
x
Reference in New Issue
Block a user