mirror of
https://github.com/xmrig/xmrig.git
synced 2025-12-11 17:32:47 -05:00
Fix: don't use NaN in hashrate calculations
This commit is contained in:
@@ -352,15 +352,20 @@ void xmrig::OclBackend::printHashrate(bool details)
|
||||
|
||||
char num[16 * 3] = { 0 };
|
||||
|
||||
const double hashrate_short = hashrate()->calc(Hashrate::ShortInterval);
|
||||
const double hashrate_medium = hashrate()->calc(Hashrate::MediumInterval);
|
||||
const double hashrate_large = hashrate()->calc(Hashrate::LargeInterval);
|
||||
auto hashrate_short = hashrate()->calc(Hashrate::ShortInterval);
|
||||
auto hashrate_medium = hashrate()->calc(Hashrate::MediumInterval);
|
||||
auto hashrate_large = hashrate()->calc(Hashrate::LargeInterval);
|
||||
|
||||
double scale = 1.0;
|
||||
const char* h = " H/s";
|
||||
|
||||
if ((hashrate_short >= 1e6) || (hashrate_medium >= 1e6) || (hashrate_large >= 1e6)) {
|
||||
if ((hashrate_short.second >= 1e6) || (hashrate_medium.second >= 1e6) || (hashrate_large.second >= 1e6)) {
|
||||
scale = 1e-6;
|
||||
|
||||
hashrate_short.second *= scale;
|
||||
hashrate_medium.second *= scale;
|
||||
hashrate_large.second *= scale;
|
||||
|
||||
h = "MH/s";
|
||||
}
|
||||
|
||||
@@ -368,12 +373,16 @@ void xmrig::OclBackend::printHashrate(bool details)
|
||||
|
||||
size_t i = 0;
|
||||
for (const auto& data : d_ptr->threads) {
|
||||
Log::print("| %8zu | %8" PRId64 " | %8s | %8s | %8s |" CYAN_BOLD(" #%u") YELLOW(" %s") " %s",
|
||||
auto h0 = hashrate()->calc(i, Hashrate::ShortInterval);
|
||||
auto h1 = hashrate()->calc(i, Hashrate::MediumInterval);
|
||||
auto h2 = hashrate()->calc(i, Hashrate::LargeInterval);
|
||||
|
||||
Log::print("| %8zu | %8" PRId64 " | %8s | %8s | %8s |" CYAN_BOLD(" #%u") YELLOW(" %s") " %s",
|
||||
i,
|
||||
data.affinity,
|
||||
Hashrate::format(hashrate()->calc(i, Hashrate::ShortInterval) * scale, num, sizeof num / 3),
|
||||
Hashrate::format(hashrate()->calc(i, Hashrate::MediumInterval) * scale, num + 16, sizeof num / 3),
|
||||
Hashrate::format(hashrate()->calc(i, Hashrate::LargeInterval) * scale, num + 16 * 2, sizeof num / 3),
|
||||
Hashrate::format(h0, num, sizeof num / 3),
|
||||
Hashrate::format(h1, num + 16, sizeof num / 3),
|
||||
Hashrate::format(h2, num + 16 * 2, sizeof num / 3),
|
||||
data.device.index(),
|
||||
data.device.topology().toString().data(),
|
||||
data.device.printableName().data()
|
||||
@@ -383,9 +392,9 @@ void xmrig::OclBackend::printHashrate(bool details)
|
||||
}
|
||||
|
||||
Log::print(WHITE_BOLD_S "| - | - | %8s | %8s | %8s |",
|
||||
Hashrate::format(hashrate_short * scale, num, sizeof num / 3),
|
||||
Hashrate::format(hashrate_medium * scale, num + 16, sizeof num / 3),
|
||||
Hashrate::format(hashrate_large * scale, num + 16 * 2, sizeof num / 3)
|
||||
Hashrate::format(hashrate_short , num, sizeof num / 3),
|
||||
Hashrate::format(hashrate_medium, num + 16, sizeof num / 3),
|
||||
Hashrate::format(hashrate_large , num + 16 * 2, sizeof num / 3)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user