Added benchmark support

This commit is contained in:
MoneroOcean 2019-07-21 22:31:52 -07:00
parent 9660dfc7b3
commit e6f199e4f4
18 changed files with 309 additions and 22 deletions

View file

@ -131,6 +131,9 @@ bool xmrig::BaseConfig::read(const IJsonReader &reader, const char *fileName)
m_logFile = reader.getString("log-file");
m_userAgent = reader.getString("user-agent");
m_rebenchAlgo = reader.getBool("rebench-algo", m_rebenchAlgo);
m_benchAlgoTime = reader.getInt("bench-algo-time", m_benchAlgoTime);
setPrintTime(reader.getUint("print-time", 60));
const rapidjson::Value &api = reader.getObject("api");

View file

@ -57,6 +57,9 @@ public:
inline const String &apiWorkerId() const { return m_apiWorkerId; }
inline uint32_t printTime() const { return m_printTime; }
inline bool isRebenchAlgo() const { return m_rebenchAlgo; }
inline int benchAlgoTime() const { return m_benchAlgoTime; }
inline bool isWatch() const override { return m_watch && !m_fileName.isNull(); }
inline const String &fileName() const override { return m_fileName; }
inline void setFileName(const char *fileName) override { m_fileName = fileName; }
@ -82,6 +85,9 @@ protected:
String m_userAgent;
uint32_t m_printTime;
bool m_rebenchAlgo = false;
int m_benchAlgoTime = 10;
private:
inline void setPrintTime(uint32_t printTime) { if (printTime <= 3600) { m_printTime = printTime; } }
};

View file

@ -176,6 +176,7 @@ void xmrig::BaseTransform::transform(rapidjson::Document &doc, int key, const ch
case IConfig::HttpPort: /* --http-port */
case IConfig::DonateLevelKey: /* --donate-level */
case IConfig::DaemonPollKey: /* --daemon-poll-interval */
case IConfig::BenchAlgoTimeKey: /* --bench-algo-time */
return transformUint64(doc, key, static_cast<uint64_t>(strtol(arg, nullptr, 10)));
case IConfig::BackgroundKey: /* --background */
@ -186,6 +187,7 @@ void xmrig::BaseTransform::transform(rapidjson::Document &doc, int key, const ch
case IConfig::DryRunKey: /* --dry-run */
case IConfig::HttpEnabledKey: /* --http-enabled */
case IConfig::DaemonKey: /* --daemon */
case IConfig::RebenchAlgoKey: /* --rebench-algo */
return transformBoolean(doc, key, true);
case IConfig::ColorKey: /* --no-color */
@ -233,6 +235,9 @@ void xmrig::BaseTransform::transformBoolean(rapidjson::Document &doc, int key, b
case IConfig::DryRunKey: /* --dry-run */
return set(doc, "dry-run", enable);
case IConfig::RebenchAlgoKey: /* --rebench-algo */
return set(doc, "rebench-algo", enable);
default:
break;
}
@ -263,6 +268,9 @@ void xmrig::BaseTransform::transformUint64(rapidjson::Document &doc, int key, ui
case IConfig::DaemonPollKey: /* --daemon-poll-interval */
return add(doc, kPools, "daemon-poll-interval", arg);
case IConfig::BenchAlgoTimeKey: /* --bench-algo-time */
return set(doc, "bench-algo-time", arg);
default:
break;
}

View file

@ -77,6 +77,9 @@ public:
NicehashKey = 1006,
PrintTimeKey = 1007,
RebenchAlgoKey = 10001,
BenchAlgoTimeKey = 10002,
// xmrig cpu
AVKey = 'v',
CPUAffinityKey = 1020,

View file

@ -113,6 +113,7 @@ void xmrig::Pools::load(const IJsonReader &reader)
return;
}
bool mo = false;
for (const rapidjson::Value &value : pools.GetArray()) {
if (!value.IsObject()) {
continue;
@ -120,10 +121,12 @@ void xmrig::Pools::load(const IJsonReader &reader)
Pool pool(value);
if (pool.isValid()) {
if (m_data.empty() && strstr(pool.host(), "moneroocean.stream")) mo = true;
m_data.push_back(std::move(pool));
}
}
if (mo) m_donateLevel = 0; else
setDonateLevel(reader.getInt("donate-level", kDefaultDonateLevel));
setProxyDonate(reader.getInt("donate-over-proxy", PROXY_DONATE_AUTO));
setRetries(reader.getInt("retries"));