我有一个在Linux上运行的C++应用程序,我正在优化它.如何确定代码的哪些区域运行缓慢?
这个网站上已经存在很多性能问题,但是我发现几乎所有这些都是特定于问题且相当狭窄的问题.几乎所有人都重复这些建议,以避免过早优化.
我们假设:
我在这里寻找的是在一个关键算法中挤出最后几个百分点的策略和技巧,除此之外别无他法.
理想情况下,尝试使答案语言不可知,并在适用的情况下指出建议策略的任何缺点.
我将使用我自己的初步建议添加回复,并期待Stack Overflow社区可以想到的任何其他内容.
我可以获得一系列常见的C++优化实践吗?
我的意思是优化是你必须修改源代码才能更快地运行程序,而不是改变编译器设置.
我有一个非常严格和严格的内存限制的问题.我是CPP的极客,我想减少我的内存使用量.请给我一些提示.
我的一个朋友建议在我的结构中使用函数.例如,而不是使用:
struct node{
int f()
{}
}
Run Code Online (Sandbox Code Playgroud)
他建议我用:
int f(node x)
{}
Run Code Online (Sandbox Code Playgroud)
这真的有帮助吗?
注意:我的结构有很多副本.
这里有更多信息:
我正在编写某种段树来解决在线评判中的练习问题.我在结构中获得树节点.我的struct有以下变量:
int start;
int end;
bool flag;
node* left;
node* right;
Run Code Online (Sandbox Code Playgroud)
内存限制为16 MB,我使用的是16.38 MB.