/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
if (!info.mTotalNumCpus) { // This is weird. return Nothing();
}
currentPosition = 0;
size_t currentCPU = 0;
// The API has currently a limit how many cpu cores it can tell about. while (currentPosition < returnedLength) { if (currentCPU >= 32) { break;
}
SYSTEM_CPU_SET_INFORMATION& set =
*reinterpret_cast<SYSTEM_CPU_SET_INFORMATION*>(cpuSets.Elements() +
currentPosition);
currentPosition += set.Size;
// If this happens the code above should already have bailed.
MOZ_ASSERT(currentPosition <= returnedLength);
// EfficiencyClass doesn't obviously translate to our model, for now what // we are doing is counting everything of 'max' power use as a big core, // everything of 'min' power use as a little code, and everything else as // medium. if (set.CpuSet.EfficiencyClass == maxEfficiencyClass) {
info.mBigCpus[currentCPU++] = true;
} elseif (set.CpuSet.EfficiencyClass == minEfficiencyClass) {
info.mLittleCpus[currentCPU++] = true;
} else {
info.mMediumCpus[currentCPU++] = true;
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.