Merge pull request #71 from Spudz76/ocean-master-addAlgoMinTime

Add algo-min-time option same as meta-miner
This commit is contained in:
MoneroOcean 2021-10-19 19:08:09 -07:00 committed by GitHub
commit 7261d47c0e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 27 additions and 3 deletions

View file

@ -48,6 +48,7 @@ namespace xmrig {
#ifdef XMRIG_FEATURE_MO_BENCHMARK
const char *BaseConfig::kAlgoMinTime = "algo-min-time";
const char *BaseConfig::kAlgoPerf = "algo-perf";
#endif
const char *BaseConfig::kApi = "api";
@ -109,6 +110,7 @@ bool xmrig::BaseConfig::read(const IJsonReader &reader, const char *fileName)
Log::setColors(reader.getBool(kColors, Log::isColors()));
# ifdef XMRIG_FEATURE_MO_BENCHMARK
m_benchAlgoTime = reader.getInt(kBenchAlgoTime, m_benchAlgoTime);
m_algoMinTime = reader.getInt(kAlgoMinTime, m_algoMinTime);
# endif
setVerbose(reader.getValue(kVerbose));

View file

@ -41,6 +41,7 @@ class BaseConfig : public IConfig
{
public:
# ifdef XMRIG_FEATURE_MO_BENCHMARK
static const char *kAlgoMinTime;
static const char *kAlgoPerf;
# endif
static const char *kApi;
@ -87,6 +88,7 @@ public:
# ifdef XMRIG_FEATURE_MO_BENCHMARK
inline bool isRebenchAlgo() const { return m_rebenchAlgo; }
inline int benchAlgoTime() const { return m_benchAlgoTime; }
inline int algoMinTime() const { return m_algoMinTime; }
# endif
# ifdef XMRIG_FEATURE_TLS
@ -122,6 +124,7 @@ protected:
# ifdef XMRIG_FEATURE_MO_BENCHMARK
bool m_rebenchAlgo = false;
int m_benchAlgoTime = 10;
int m_algoMinTime = 0;
# endif
# ifdef XMRIG_FEATURE_TLS

View file

@ -244,6 +244,7 @@ void xmrig::BaseTransform::transform(rapidjson::Document &doc, int key, const ch
case IConfig::RetriesKey: /* --retries */
# ifdef XMRIG_FEATURE_MO_BENCHMARK
case IConfig::BenchAlgoTimeKey: /* --bench-algo-time */
case IConfig::AlgoMinTimeKey: /* --algo-min-time */
# endif
case IConfig::RetryPauseKey: /* --retry-pause */
case IConfig::PrintTimeKey: /* --print-time */
@ -383,6 +384,9 @@ void xmrig::BaseTransform::transformUint64(rapidjson::Document &doc, int key, ui
# ifdef XMRIG_FEATURE_MO_BENCHMARK
case IConfig::BenchAlgoTimeKey: /* --bench-algo-time */
return set(doc, BaseConfig::kBenchAlgoTime, arg);
case IConfig::AlgoMinTimeKey: /* --algo-min-time */
return set(doc, BaseConfig::kAlgoMinTime, arg);
# endif
default:

View file

@ -96,6 +96,7 @@ public:
# ifdef XMRIG_FEATURE_MO_BENCHMARK
RebenchAlgoKey = 10001,
BenchAlgoTimeKey = 10002,
AlgoMinTimeKey = 10003,
# endif
// xmrig cpu

View file

@ -202,7 +202,7 @@ bool xmrig::Config::isShouldSave() const
}
# endif
# ifdef XMRIG_FEATURE_BENCHMARK
# ifdef XMRIG_FEATURE_MO_BENCHMARK
if (m_benchmark.isNewBenchRun()) {
return true;
}
@ -245,7 +245,7 @@ bool xmrig::Config::read(const IJsonReader &reader, const char *fileName)
d_ptr->healthPrintTime = reader.getUint(kHealthPrintTime, d_ptr->healthPrintTime);
# endif
# ifdef XMRIG_FEATURE_BENCHMARK
# ifdef XMRIG_FEATURE_MO_BENCHMARK
m_benchmark.read(reader.getValue(kAlgoPerf));
# endif
@ -314,9 +314,10 @@ void xmrig::Config::getJSON(rapidjson::Document &doc) const
doc.AddMember(StringRef(kVerbose), Log::verbose(), allocator);
doc.AddMember(StringRef(kWatch), m_watch, allocator);
# ifdef XMRIG_FEATURE_BENCHMARK
# ifdef XMRIG_FEATURE_MO_BENCHMARK
doc.AddMember(StringRef(kRebenchAlgo), isRebenchAlgo(), allocator);
doc.AddMember(StringRef(kBenchAlgoTime), benchAlgoTime(), allocator);
doc.AddMember(StringRef(kAlgoMinTime), algoMinTime(), allocator);
doc.AddMember(StringRef(kAlgoPerf), m_benchmark.toJSON(doc), allocator);
# endif

View file

@ -68,6 +68,7 @@ static const option options[] = {
# ifdef XMRIG_FEATURE_MO_BENCHMARK
{ "rebench-algo", 0, nullptr, IConfig::RebenchAlgoKey },
{ "bench-algo-time", 1, nullptr, IConfig::BenchAlgoTimeKey },
{ "algo-min-time", 1, nullptr, IConfig::AlgoMinTimeKey },
# endif
{ "no-color", 0, nullptr, IConfig::ColorKey },
{ "no-huge-pages", 0, nullptr, IConfig::HugePagesKey },

View file

@ -204,6 +204,13 @@ static inline const std::string &usage()
u += " --no-dmi disable DMI/SMBIOS reader\n";
# endif
# ifdef XMRIG_FEATURE_MO_BENCHMARK
u += "\nMoneroOcean Benchmark (algo-perf):\n";
u += " --rebench-algo run algo-perf benchmark (default if config contains no algo-perf)\n";
u += " --bench-algo-time=N run algo-perf benchmark this many seconds per algo (default: 10)\n";
u += " --algo-min-time=N when mining, avoid switching more often than every N seconds (default: 0/disabled)\n";
# endif
return u;
}

View file

@ -214,6 +214,11 @@ void xmrig::Network::onLogin(IStrategy *, IClient *client, rapidjson::Document &
}
params.AddMember("algo-perf", algo_perf, allocator);
int algo_min_time = m_controller->config()->algoMinTime();
if (algo_min_time > 0) {
params.AddMember("algo-min-time", algo_min_time, allocator);
}
# endif
}