Add algo-min-time option same as meta-miner
This commit is contained in:
parent
22ab8c6254
commit
28b86148ed
8 changed files with 27 additions and 3 deletions
|
@ -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));
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -96,6 +96,7 @@ public:
|
|||
# ifdef XMRIG_FEATURE_MO_BENCHMARK
|
||||
RebenchAlgoKey = 10001,
|
||||
BenchAlgoTimeKey = 10002,
|
||||
AlgoMinTimeKey = 10003,
|
||||
# endif
|
||||
|
||||
// xmrig cpu
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 },
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue