gpt4 book ai didi

c++ - 用更快的方法替换这些方法

转载 作者:行者123 更新时间:2023-11-30 02:55:59 25 4
gpt4 key购买 nike

这个问题实际上是对a previous question的更新我已经发布了。根据用户的意见,我意识到我需要分析我的代码,所以我通过 Vtune Amp 分析了我的代码的第一部分。与其他方法相比,我得到了以下消耗大量时间的语句

Source Line Source                                                                        CPU Time by Utilization   Overhead Time   Spin Time
double high_val = atof(temp[2].c_str());
std::string s( (std::istreambuf_iterator<char>(&buffer)), std::istreambuf_iterator<char>());
boost::split( temp, lines[i], boost::is_any_of(",") );

在上面的代码缓冲区中是:boost::asio::streambuf 缓冲区;

关于上述替换功能的任何建议?

最佳答案

为所有解析任务尝试 Boost.Sprit。如果你有很多规则,它可能会消耗更多的编译时资源,但它在运行时会很快。

对于第一行:

#include <boost/spirit/include/qi.hpp>
std::string::iterator begin = temp.begin() + 2;
std::string::iterator end = input.end();
float high_val;
boost::spirit::qi::parse(begin, end, boost::spirit::float_, high_val);

最后一行:

std::vector<std::string>;
// '%' is a list parser
boost::spirit::qi::parse(buffer.data(), buffer.data() + buffer.size(), *(char_ - ',') % ',', lines);

很可能,可以为你的所有任务创建一个简单的语法,但我不知道你到底在解析什么,所以我只是尝试或多或少地匹配你上面的代码。

关于c++ - 用更快的方法替换这些方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15985962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com