我有一个在Linux上运行的C++应用程序,我正在优化它.如何确定代码的哪些区域运行缓慢?
这个网站上已经存在很多性能问题,但是我发现几乎所有这些都是特定于问题且相当狭窄的问题.几乎所有人都重复这些建议,以避免过早优化.
我们假设:
我在这里寻找的是在一个关键算法中挤出最后几个百分点的策略和技巧,除此之外别无他法.
理想情况下,尝试使答案语言不可知,并在适用的情况下指出建议策略的任何缺点.
我将使用我自己的初步建议添加回复,并期待Stack Overflow社区可以想到的任何其他内容.
写完后:
std::pair<int, int> x;
Run Code Online (Sandbox Code Playgroud)
我保证x.first和x.second都是零吗?或者他们可以有任何价值吗?
我之所以关心是因为我试图确定一个值为指针的映射是否保证在访问不在映射中的元素时返回NULL.即,如果我这样做:
std::map<int, void*> my_map;
std::cout << int(my_map[5]) << std::endl;
Run Code Online (Sandbox Code Playgroud)
然后我保证得到零(NULL)?或者行为未定义?