【发布时间】:2013-04-13 17:26:51
【问题描述】:
这个问题实际上是我发布的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 buffer;
对上述替换功能有什么建议吗?
【问题讨论】:
-
buffer是什么类型? -
好的,我明白了。你打算用
s做什么?真的需要创建这个对象,或者您可以直接在buffer.data()上工作? -
我将缓冲区复制到字符串的唯一原因是因为我想将此字符串传递给下一条语句
boost::split() -
所以实际上是
temp,而不是s? -
一旦字符串被发送到各种不同的方法。这些方法使用 boost::split 进一步拆分此字符串,并将字符串拆分成的向量是
lines。