gpt4 book ai didi

c++ - 瓶颈和糟糕的风格代码

转载 作者:行者123 更新时间:2023-11-28 05:35:21 25 4
gpt4 key购买 nike

我写了一个程序,但遇到了性能问题。

瓶颈是这个功能:

void getlinesplit(const char *file, unsigned int &pos, tline &vline)
{
vline.clear();

unsigned int debut_du_mot = 0;
unsigned int i = 0;
while (file[pos+i] != '\n')
{
if (file[pos+i] == '\t')
{
vline.push_back(std::string(file+pos+debut_du_mot,i - debut_du_mot));
debut_du_mot = i+1;
}
++i;
}
vline.push_back(std::string(file+pos+debut_du_mot,i - debut_du_mot));
pos = pos + i+1;
}

这个函数被调用了 11 988 400 次。

vline 是相同的字符串 vector ,以避免创建和销毁 vector 。

如何改进此功能?

PS:一行最多1-2个字

最佳答案

很可能函数不是瓶颈,而是你调用它 1200 万次的事实:-)

一个明显的改进是有一个变量

const char* file_pos = file + pos;

简化每一次访问。您没有说 tline 是如何实现的;如果一行从不包含超过两个单词,那么您可以通过使用两个 std::string 成员而不是数组来使其更快。

关于c++ - 瓶颈和糟糕的风格代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38421670/

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