相关疑难解决方法(0)

如何分析在Linux上运行的C++代码?

我有一个在Linux上运行的C++应用程序,我正在优化它.如何确定代码的哪些区域运行缓慢?

c++ unix profiling

1732
推荐指数
12
解决办法
49万
查看次数

最后的性能优化策略

这个网站上已经存在很多性能问题,但是我发现几乎所有这些都是特定于问题且相当狭窄的问题.几乎所有人都重复这些建议,以避免过早优化.

我们假设:

  • 代码已经正常工作
  • 所选择的算法对于问题的情况已经是最佳的
  • 已经测量了代码,并且已经隔离了违规的例程
  • 所有优化尝试也将被测量,以确保它们不会使事情变得更糟

我在这里寻找的是在一个关键算法中挤出最后几个百分点的策略和技巧,除此之外别无他法.

理想情况下,尝试使答案语言不可知,并在适用的情况下指出建议策略的任何缺点.

我将使用我自己的初步建议添加回复,并期待Stack Overflow社区可以想到的任何其他内容.

language-agnostic optimization performance

600
推荐指数
28
解决办法
8万
查看次数

什么是FLOP/s并且它是一个很好的性能衡量标准?

我被要求测量一个解决多CPU系统微分方程的fortran程序的性能.我的雇主坚持认为我测量FLOP/s(每秒浮动操作)并将结果与​​基准(LINPACK)进行比较,但我不相信它是要走的路,因为没有人可以向我解释什么是FLOP.

我做了一些关于FLOP究竟是什么的研究,我得到了一些相当矛盾的答案.我得到的最受欢迎的答案之一是'1 FLOP =加法和乘法运算'.真的吗?如果是这样,再次,在物理上,究竟是什么意思?

无论我最终使用哪种方法,它都必须是可扩展的.一些版本的代码解决了具有数百万未知数的系统,并且需要数天才能执行.

在我的案例中,还有哪些其他有效的衡量绩效的方法(我的案例摘要是'fortran代码,它在数百个CPU上反复进行了大量的算术计算)?

performance benchmarking flops

41
推荐指数
3
解决办法
3万
查看次数