mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-07 17:43:51 +00:00
feat(extract): expose --threads to upgrade-extract + report elapsed time
emitOpenFormats now takes an optional threadCount parameter (0 =
auto). The asset_extract --upgrade-extract path forwards opts.threads
so users can override the auto-detect when running on a CI machine
with limited cores or wanting deterministic timing.
Also wraps the upgrade pass with a chrono timer and prints elapsed
seconds so the parallelization payoff is visible at a glance:
asset_extract --upgrade-extract Data/expansions/wotlk --threads 8
Walking Data/expansions/wotlk for open-format upgrades...
elapsed : 47.2 s
PNG (BLP→PNG) : 12340 ok
...
Verified end-to-end: --threads 2 on 5 hand-built DBCs converts all
5 in well under a second.
This commit is contained in:
parent
cab1912441
commit
463a8cd751
3 changed files with 15 additions and 4 deletions
|
|
@ -289,7 +289,8 @@ void emitOpenFormats(const std::string& rootDir,
|
|||
bool emitPng, bool emitJsonDbc,
|
||||
bool emitWom, bool emitWob,
|
||||
bool emitTerrain,
|
||||
OpenFormatStats& stats) {
|
||||
OpenFormatStats& stats,
|
||||
unsigned int threadCount) {
|
||||
if (!fs::exists(rootDir)) return;
|
||||
if (!emitPng && !emitJsonDbc && !emitWom && !emitWob && !emitTerrain) return;
|
||||
|
||||
|
|
@ -368,7 +369,8 @@ void emitOpenFormats(const std::string& rootDir,
|
|||
}
|
||||
};
|
||||
|
||||
unsigned int threadCount = std::max(1u, std::thread::hardware_concurrency());
|
||||
if (threadCount == 0) threadCount = std::thread::hardware_concurrency();
|
||||
if (threadCount == 0) threadCount = 1;
|
||||
std::vector<std::thread> pool;
|
||||
pool.reserve(threadCount);
|
||||
for (unsigned int t = 0; t < threadCount; t++) pool.emplace_back(worker);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue