gpt4 book ai didi

c++ - 如何使用 Visual Studio 2008 确定 C++ 代码的复杂性(如 CPU 周期)

转载 作者:搜寻专家 更新时间:2023-10-31 00:03:02 25 4
gpt4 key购买 nike

我经常不得不编写我想优化性能的代码,并且我经常对特定问题有多种解决方案。

是否有一种简单的方法来确定特定语句/函数将占用的 CPU 周期数?我不是在谈论访问文件系统、Windows API 或网络的复杂代码,我是在谈论比较六行 C++ 代码以确定哪些代码更高效。

经典的例子是比较++i 和 i++。前者更快,但不知道这一点,我自己怎么能确定呢?

我宁愿不安装昂贵的性能工具(例如 Intel 的工具),而是找到一种简单的方法来查明真相。有没有办法查看由 C++ 代码生成的汇编程序代码 - 无需调试?

当然欢迎任何其他建议和/或方法。

最佳答案

您的++i 与 i++ 的“经典示例”通常是无关紧要的。优化编译器足以防止这成为一个问题。事实上,他们非常擅长让看起来很慢的代码变快。

看看算法的复杂性:如果代码出乎意料地慢,通常在某处的内部循环中存在隐藏的 O(n)。

前面已经说过了,profile,profile,profile。由于缓存的重要性,现在计数周期的相关性要小得多。微基准测试有时适用于小块代码,但通常不能代表它们在应用程序中的性能。

Visual Studio 有一个内置的探查器,描述如下:http://msdn.microsoft.com/en-us/magazine/cc337887.aspx这正是您所需要的。

不要选择效率更高的代码。选择更可读的代码。

关于c++ - 如何使用 Visual Studio 2008 确定 C++ 代码的复杂性(如 CPU 周期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6917428/

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