diff options
-rw-r--r-- | src/init.cpp | 10 | ||||
-rw-r--r-- | src/qt/forms/optionsdialog.ui | 12 | ||||
-rw-r--r-- | src/qt/optionsdialog.cpp | 6 | ||||
-rw-r--r-- | src/qt/optionsmodel.cpp | 3 | ||||
-rw-r--r-- | src/txdb.h | 7 |
5 files changed, 20 insertions, 18 deletions
diff --git a/src/init.cpp b/src/init.cpp index 9ba77105b4..c05ed4356c 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -196,7 +196,7 @@ std::string HelpMessage(HelpMessageMode hmm) strUsage += " -testnet " + _("Use the test network") + "\n"; strUsage += " -pid=<file> " + _("Specify pid file (default: bitcoind.pid)") + "\n"; strUsage += " -gen " + _("Generate coins (default: 0)") + "\n"; - strUsage += " -dbcache=<n> " + _("Set database cache size in megabytes (default: 25)") + "\n"; + strUsage += " -dbcache=<n> " + strprintf(_("Set database cache size in megabytes (%d to %d, default: %d)"), nMinDbCache, nMaxDbCache, nDefaultDbCache) + "\n"; strUsage += " -timeout=<n> " + _("Specify connection timeout in milliseconds (default: 5000)") + "\n"; strUsage += " -proxy=<ip:port> " + _("Connect through SOCKS proxy") + "\n"; strUsage += " -socks=<n> " + _("Select SOCKS version for -proxy (4 or 5, default: 5)") + "\n"; @@ -776,9 +776,11 @@ bool AppInit2(boost::thread_group& threadGroup) } // cache size calculations - size_t nTotalCache = GetArg("-dbcache", 25) << 20; - if (nTotalCache < (1 << 22)) - nTotalCache = (1 << 22); // total cache cannot be less than 4 MiB + size_t nTotalCache = (GetArg("-dbcache", nDefaultDbCache) << 20); + if (nTotalCache < (nMinDbCache << 20)) + nTotalCache = (nMinDbCache << 20); // total cache cannot be less than nMinDbCache + else if (nTotalCache > (nMaxDbCache << 20)) + nTotalCache = (nMaxDbCache << 20); // total cache cannot be greater than nMaxDbCache size_t nBlockTreeDBCache = nTotalCache / 8; if (nBlockTreeDBCache > (1 << 21) && !GetBoolArg("-txindex", false)) nBlockTreeDBCache = (1 << 21); // block tree db cache shouldn't be larger than 2 MiB diff --git a/src/qt/forms/optionsdialog.ui b/src/qt/forms/optionsdialog.ui index b4a9f1f580..a0626f989c 100644 --- a/src/qt/forms/optionsdialog.ui +++ b/src/qt/forms/optionsdialog.ui @@ -53,17 +53,7 @@ </widget> </item> <item> - <widget class="QSpinBox" name="databaseCache"> - <property name="toolTip"> - <string>Set database cache size in megabytes (default: 25)</string> - </property> - <property name="maximum"> - <number>1024</number> - </property> - <property name="value"> - <number>25</number> - </property> - </widget> + <widget class="QSpinBox" name="databaseCache"/> </item> <item> <widget class="QLabel" name="databaseCacheUnitLabel"> diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index f4eb7ef07e..e31542961c 100644 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -14,8 +14,9 @@ #include "monitoreddatamapper.h" #include "optionsmodel.h" +#include "main.h" // for CTransaction::nMinTxFee #include "netbase.h" -#include "main.h" +#include "txdb.h" // for -dbcache defaults #include <QDir> #include <QIntValidator> @@ -34,7 +35,8 @@ OptionsDialog::OptionsDialog(QWidget *parent) : GUIUtil::restoreWindowGeometry("nOptionsDialogWindow", this->size(), this); /* Main elements init */ - ui->databaseCache->setMaximum(sizeof(void*) > 4 ? 4096 : 1024); + ui->databaseCache->setMinimum(nMinDbCache); + ui->databaseCache->setMaximum(nMaxDbCache); /* Network elements init */ #ifndef USE_UPNP diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index eff73b7702..1a460b9278 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -14,6 +14,7 @@ #include "init.h" #include "main.h" #include "net.h" +#include "txdb.h" // for -dbcache defaults #ifdef ENABLE_WALLET #include "wallet.h" #include "walletdb.h" @@ -84,7 +85,7 @@ void OptionsModel::Init() #endif if (!settings.contains("nDatabaseCache")) - settings.setValue("nDatabaseCache", 25); + settings.setValue("nDatabaseCache", nDefaultDbCache); if (!SoftSetArg("-dbcache", settings.value("nDatabaseCache").toString().toStdString())) strOverriddenByCommandLine += "-dbcache "; diff --git a/src/txdb.h b/src/txdb.h index 7ce6585d37..0512396e97 100644 --- a/src/txdb.h +++ b/src/txdb.h @@ -18,6 +18,13 @@ class CBigNum; class CCoins; class uint256; +// -dbcache default (MiB) +static const int nDefaultDbCache = 100; +// max. -dbcache in (MiB) +static const int nMaxDbCache = sizeof(void*) > 4 ? 4096 : 1024; +// min. -dbcache in (MiB) +static const int nMinDbCache = 4; + /** CCoinsView backed by the LevelDB coin database (chainstate/) */ class CCoinsViewDB : public CCoinsView { |