From a460224283f47c04dca607fb659f1ea990d0225a Mon Sep 17 00:00:00 2001 From: zzyyyl Date: Mon, 13 Mar 2023 10:57:12 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=8A=A0=E9=80=9F=20tasks.json=20?= =?UTF-8?q?=E7=9A=84=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 之前每个 tasks.json 文件读取的时候都会 expend 一遍(很耗时间) 现在在 parse 的时候不 expend, 而是等到一个任务被第一次 get 的时候才 expend. (不知道会不会出问题,大家测测) --- src/MaaCore/Config/TaskData.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/MaaCore/Config/TaskData.cpp b/src/MaaCore/Config/TaskData.cpp index f9ef37e6e2..9c3ee95aa9 100644 --- a/src/MaaCore/Config/TaskData.cpp +++ b/src/MaaCore/Config/TaskData.cpp @@ -140,10 +140,13 @@ bool asst::TaskData::parse(const json::value& json) generate_task_and_its_base(name); } + // 延迟生成,等到一个任务被第一次 get 的时候才生成 + /* // 生成 # 型任务 for (const auto& [name, old_task] : m_raw_all_tasks_info) { expend_task(name, old_task); } + */ } #ifdef ASST_DEBUG @@ -958,20 +961,20 @@ bool asst::TaskData::syntax_check(const std::string& task_name, const json::valu } bool validity = true; - if (!m_all_tasks_info.contains(task_name)) { + if (!m_raw_all_tasks_info.contains(task_name)) { Log.error("TaskData::syntax_check | Task", task_name, "has not been generated."); return false; } // 获取 algorithm - auto algorithm = m_all_tasks_info[task_name]->algorithm; + auto algorithm = m_raw_all_tasks_info[task_name]->algorithm; if (algorithm == AlgorithmType::Invalid) [[unlikely]] { Log.error(task_name, "has unknown algorithm."); validity = false; } // 获取 action - auto action = m_all_tasks_info[task_name]->action; + auto action = m_raw_all_tasks_info[task_name]->action; if (action == ProcessTaskAction::Invalid) [[unlikely]] { Log.error(task_name, "has unknown action."); validity = false;