Add tuning options related to performance warnings

Related: #16462.
PR #16538.
This commit is contained in:
Chocobo1 2022-03-01 12:44:48 +08:00 committed by GitHub
parent 36c14ca587
commit ac97ed685f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 95 additions and 6 deletions

View file

@ -379,6 +379,7 @@ Session::Session(QObject *parent)
, m_checkingMemUsage(BITTORRENT_SESSION_KEY("CheckingMemUsageSize"), 32)
, m_diskCacheSize(BITTORRENT_SESSION_KEY("DiskCacheSize"), -1)
, m_diskCacheTTL(BITTORRENT_SESSION_KEY("DiskCacheTTL"), 60)
, m_diskQueueSize(BITTORRENT_SESSION_KEY("DiskQueueSize"), (1024 * 1024))
, m_useOSCache(BITTORRENT_SESSION_KEY("UseOSCache"), true)
#ifdef Q_OS_WIN
, m_coalesceReadWriteEnabled(BITTORRENT_SESSION_KEY("CoalesceReadWrite"), true)
@ -468,6 +469,7 @@ Session::Session(QObject *parent)
, m_peerTurnover(BITTORRENT_SESSION_KEY("PeerTurnover"), 4)
, m_peerTurnoverCutoff(BITTORRENT_SESSION_KEY("PeerTurnoverCutOff"), 90)
, m_peerTurnoverInterval(BITTORRENT_SESSION_KEY("PeerTurnoverInterval"), 300)
, m_requestQueueSize(BITTORRENT_SESSION_KEY("RequestQueueSize"), 500)
, m_bannedIPs("State/BannedIPs"
, QStringList()
, [](const QStringList &value)
@ -1330,6 +1332,8 @@ void Session::loadLTSettings(lt::settings_pack &settingsPack)
settingsPack.set_int(lt::settings_pack::peer_turnover_cutoff, peerTurnoverCutoff());
settingsPack.set_int(lt::settings_pack::peer_turnover_interval, peerTurnoverInterval());
settingsPack.set_int(lt::settings_pack::max_out_request_queue, requestQueueSize());
settingsPack.set_int(lt::settings_pack::aio_threads, asyncIOThreads());
#ifdef QBT_USES_LIBTORRENT2
settingsPack.set_int(lt::settings_pack::hashing_threads, hashingThreads());
@ -1345,6 +1349,8 @@ void Session::loadLTSettings(lt::settings_pack &settingsPack)
settingsPack.set_int(lt::settings_pack::cache_expiry, diskCacheTTL());
#endif
settingsPack.set_int(lt::settings_pack::max_queued_disk_bytes, diskQueueSize());
lt::settings_pack::io_buffer_mode_t mode = useOSCache() ? lt::settings_pack::enable_os_cache
: lt::settings_pack::disable_os_cache;
settingsPack.set_int(lt::settings_pack::disk_io_read_mode, mode);
@ -3259,6 +3265,20 @@ void Session::setPeerTurnoverInterval(const int val)
configureDeferred();
}
int Session::requestQueueSize() const
{
return m_requestQueueSize;
}
void Session::setRequestQueueSize(const int val)
{
if (val == m_requestQueueSize)
return;
m_requestQueueSize = val;
configureDeferred();
}
int Session::asyncIOThreads() const
{
return std::clamp(m_asyncIOThreads.get(), 1, 1024);
@ -3357,6 +3377,20 @@ void Session::setDiskCacheTTL(const int ttl)
}
}
qint64 Session::diskQueueSize() const
{
return m_diskQueueSize;
}
void Session::setDiskQueueSize(const qint64 size)
{
if (size == m_diskQueueSize)
return;
m_diskQueueSize = size;
configureDeferred();
}
bool Session::useOSCache() const
{
return m_useOSCache;