添加性能记录机制

This commit is contained in:
codeboss 2024-06-15 09:18:33 +08:00
parent ebdc712c62
commit 16f89a2ee7
10 changed files with 44 additions and 3 deletions

View File

@ -7,8 +7,12 @@
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtLastBackgroundBuild>2024-06-09T14:31:55.5400719Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtLastBackgroundBuild>2024-06-09T14:31:55.8096222Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
</Project>

View File

@ -10,6 +10,7 @@
#include <QDir>
#include <QTextStream>
#include <iostream>
#include <QTime>
#include "novelparser.h"
#include "htmlprint.h"
@ -80,6 +81,8 @@ int main(int argc, char* argv[]) {
auto parser = std::make_shared<NovelParser>();
auto novel_accesstree = parser->parse(files);
QTime time_stamp = QTime::currentTime();
printer::tools_printer tool;
tool.build_fragments(novel_accesstree);
tool.build_refers_network(novel_accesstree);
@ -231,6 +234,8 @@ int main(int argc, char* argv[]) {
}
}
auto current_stamp = QTime::currentTime();
qDebug() << QString(u8"html构建消耗时间%1 ms。").arg(time_stamp.msecsTo(current_stamp));
//tnode_print(novel_accesstree, 0);
qDebug() << u8"±àÒë³É¹¦£º" << QDir::current().absoluteFilePath(u8"index.html");
}

View File

@ -3,6 +3,8 @@
#include <syntax_novel.h>
#include <ast_novel.h>
#include <parse_novel.h>
#include <QTime>
#include <QDebug>
using namespace example_novel;
@ -25,11 +27,14 @@ std::shared_ptr<const ast_gen::ElementAccess> NovelParser::parse(const QFileInfo
QList<std::shared_ptr<const ast_basic::TokenNode>> forst_root;
auto lex_reader = NovalSyntax::getLexReader();
auto time_stamp = QTime::currentTime();
for (auto& file : source_list) {
auto tokens = lex_reader->extractFrom(file.canonicalFilePath());
auto exprs_result = std::make_shared<lib_syntax::ExprsChecker>(this->syntax_defines)->parseFrom(tokens);
forst_root.append(exprs_result);
}
auto current_stamp = QTime::currentTime();
qDebug() << QString(u8"词法解析+语法解析消耗时间:%1 ms。").arg(time_stamp.msecsTo(current_stamp));
std::function<QList<std::shared_ptr<const ast_basic::ExprNode>>(QList<std::shared_ptr<const ast_basic::TokenNode>> input)> summary =
@ -45,11 +50,13 @@ std::shared_ptr<const ast_gen::ElementAccess> NovelParser::parse(const QFileInfo
return temp;
};
time_stamp = QTime::currentTime();
auto tree_visit = std::make_shared<example_novel::NovelExprsVisitor>();
auto vinst = std::make_shared<ast_gen::ExprTreeParser>(tree_visit);
auto resultx = vinst->parse("test", summary(forst_root));
auto novel_accesstree = vinst->tidy(resultx);
current_stamp = QTime::currentTime();
qDebug() << QString(u8"程序结构重建消耗时间:%1 ms。").arg(time_stamp.msecsTo(current_stamp));
return analyzer_ref->validCheckWith(novel_accesstree);
}

View File

@ -6,8 +6,12 @@
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtLastBackgroundBuild>2024-06-09T14:31:56.1755099Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtLastBackgroundBuild>2024-06-09T14:31:56.2760593Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
</Project>

View File

@ -8,9 +8,14 @@ QString CheckException::message() const { return msg_store; }
Analyzer::Analyzer(const QList<std::shared_ptr<const CheckProvider> >& providers) : check_providers(providers) {}
#include <QTime>
#include <QDebug>
std::shared_ptr<const ast_gen::ElementAccess> Analyzer::validCheckWith(std::shared_ptr<const ast_gen::ElementAccess> root) const {
for (auto& v : check_providers)
for (auto& v : check_providers){
QTime time_stamp = QTime::currentTime();
v->validCheck(root);
auto current_stamp = QTime::currentTime();
qDebug() << QString(u8"校验器:%2 消耗时间:%1 ms。").arg(time_stamp.msecsTo(current_stamp)).arg(v->name());
}
return root;
}

View File

@ -25,6 +25,7 @@ namespace lib_parse {
*/
class CheckProvider {
public:
virtual QString name() const = 0;
virtual void validCheck(std::shared_ptr<const ast_gen::ElementAccess> root) const = 0;
};

View File

@ -2,6 +2,7 @@
#include <ast_novel.h>
#include <iterator>
#include <QTime>
using namespace example_novel;
using namespace ast_basic;

View File

@ -12,6 +12,9 @@ namespace example_novel {
public:
// 通过 CheckProvider 继承
virtual void validCheck(std::shared_ptr<const ast_gen::ElementAccess> root) const override;
virtual QString name() const override {
return u8"FragmentExistsCheck";
}
};
@ -30,6 +33,9 @@ namespace example_novel {
// CheckProvider interface
public:
virtual void validCheck(std::shared_ptr<const ast_gen::ElementAccess> root) const override;
virtual QString name() const override {
return u8"FragmentOrdersCheck";
}
};
/**

View File

@ -6,8 +6,12 @@
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtLastBackgroundBuild>2024-06-09T14:31:56.3290165Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtLastBackgroundBuild>2024-06-09T14:31:56.4329521Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
</Project>

View File

@ -3,8 +3,12 @@
<PropertyGroup />
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QtLastBackgroundBuild>2024-06-09T14:31:55.8742215Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QtLastBackgroundBuild>2024-06-09T14:31:56.1208490Z</QtLastBackgroundBuild>
<QtTouchProperty>
</QtTouchProperty>
</PropertyGroup>
</Project>