这个网站上已经存在很多性能问题,但是我发现几乎所有这些都是特定于问题且相当狭窄的问题.几乎所有人都重复这些建议,以避免过早优化.
我们假设:
我在这里寻找的是在一个关键算法中挤出最后几个百分点的策略和技巧,除此之外别无他法.
理想情况下,尝试使答案语言不可知,并在适用的情况下指出建议策略的任何缺点.
我将使用我自己的初步建议添加回复,并期待Stack Overflow社区可以想到的任何其他内容.
在观看Joshua Bloch的演出"表现焦虑"后,我阅读了他在"评估Java Pro fi lers的准确性"演讲中提出的论文.引用结论:
我们的结果是令人不安的,因为它们表明在我们的七个基准测试和两个生产JVM中大多数普遍存在的错误 - 并且显着 - 所有四个最先进的专业人员都会产生不正确的专业知识.不正确的配置文件很容易导致性能分析师花时间优化对性能影响最小的冷方法.我们表明,不使用屈服点进行采样的概念验证问题不会遇到上述问题
论文的结论是我们无法真正相信剖析器的结果.但是,使用分析器的替代方法是什么.我们应该回去,只是用我们的感觉做优化吗?
更新:讨论中似乎遗漏的一点是观察者效应.我们能否建立一个真正" 观察者效应 " 的探测器- 免费?
感谢来自这里的人们的帮助,我能够获得塔斯马尼亚骆驼拼图工作的代码.然而,它非常慢(我想.我不确定,因为这是我在Python中的第一个程序).在代码底部运行的示例需要很长时间才能在我的机器中解决:
dumrat@dumrat:~/programming/python$ time python camels.py
[['F', 'F', 'F', 'G', 'B', 'B', 'B'], ['F', 'F', 'G', 'F', 'B', 'B', 'B'],
['F', 'F', 'B', 'F', 'G', 'B', 'B'], ['F', 'F', 'B', 'F', 'B', 'G', 'B'],
['F', 'F', 'B', 'G', 'B', 'F', 'B'], ['F', 'G', 'B', 'F', 'B', 'F', 'B'],
['G', 'F', 'B', 'F', 'B', 'F', 'B'], ['B', 'F', 'G', 'F', 'B', 'F', 'B'],
['B', 'F', 'B', 'F', 'G', 'F', 'B'], ['B', 'F', 'B', 'F', 'B', 'F', 'G'],
['B', 'F', 'B', 'F', 'B', …Run Code Online (Sandbox Code Playgroud) 我正在运行一个相对复杂的python程序,其中有一个montecarlo模拟,它占用了大部分时间.我想找出它使用最多资源的部分,以便我可以更快地完成它.
我正在使用PyCharm Professional版本并尝试使用分析器,但结果只是我从未听说过的大量无关功能.
问题:我是否可以使用可以提供有意义结果的优秀分析器,以便我可以看到哪个函数或关键字在我的montecarlo模拟中使用了最多的资源?
我过去曾经使用过一些分析器,但从未发现它们特别容易.也许我挑选了不好的,也许我真的不知道我在期待什么!但是我想知道是否有任何"标准"分析器只是简单地投入使用?我不相信我需要大量详细的报告,只是为了获取主要的黑点.在这一点上,易用性对我来说更重要.
这是我们正在使用的VC++ 2008(我亲自运行标准版).我不认为IDE中有任何工具,看不到主菜单我看不到任何工具?
我试图找出我的代码库中使用了多少不同的部分。如何最好地遍历导入树并找出导入什么?理想情况下,结果数据可以告诉我
注意:一种选择是使用此帖子运行所有测试和配置文件。然而,测试甚至不是跨代码库,有些区域没有测试,所以这不会有很大的代表性。
performance ×3
python ×3
optimization ×2
profiler ×2
c++ ×1
java ×1
profiling ×1
pycharm ×1
visual-c++ ×1