perf: 加速 tasks.json 的读取

之前每个 tasks.json 文件读取的时候都会 expend 一遍(很耗时间)
现在在 parse 的时候不 expend, 而是等到一个任务被第一次 get 的时候才 expend.
(不知道会不会出问题,大家测测)
This commit is contained in:
zzyyyl
2023-03-13 10:57:12 +08:00
committed by zzyyyl
parent 67668f33ee
commit a460224283

View File

@@ -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;