Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否有任何好的工具/框架来分析C/C+的性能+;应用_C++_C_Windows_Performance_Profiling - Fatal编程技术网

C++ 是否有任何好的工具/框架来分析C/C+的性能+;应用

C++ 是否有任何好的工具/框架来分析C/C+的性能+;应用,c++,c,windows,performance,profiling,C++,C,Windows,Performance,Profiling,我是C/C++新手,面临一个性能问题,即我的程序运行非常慢。我想找到的热点是减少代码的总体执行时间。 在Windows中评测C/C++应用程序最流行和最简单的方法是什么? 我非常惊讶地发现,使用它来分析.NET应用程序是多么容易。我们在C/C++中有没有类似的库,只需添加最少的代码就可以提供高质量和可靠的结果? 或者是否有任何工具可以与提供程序类似,也可以提供有关运行代码的深刻信息?英特尔的VTune或AMD的CodeAnalyst都是非常好的工具。在Linux上,Perf或OProfile也会

我是C/C++新手,面临一个性能问题,即我的程序运行非常慢。我想找到的热点是减少代码的总体执行时间。 在Windows中评测C/C++应用程序最流行和最简单的方法是什么? 我非常惊讶地发现,使用它来分析.NET应用程序是多么容易。我们在C/C++中有没有类似的库,只需添加最少的代码就可以提供高质量和可靠的结果?
或者是否有任何工具可以与提供程序类似,也可以提供有关运行代码的深刻信息?

英特尔的VTune或AMD的CodeAnalyst都是非常好的工具。在Linux上,Perf或OProfile也会做同样的事情

英特尔的VTune或AMD的CodeAnalyst都是非常好的工具。在Linux上,Perf或OProfile也会做同样的事情

在查找探查器时,请在调试器IDE中运行该程序,然后重试

一些程序员依赖它。这里有一个如何使用它的例子

在这个例子中,下面是发生的情况。发现并消除了一系列问题

  • 第一次迭代节省了33%的时间。(加速系数1.5)

  • 在剩余的时间中,第二次迭代节省了17%。(加速系数1.2)

  • 剩下的时间中,第三次迭代节省了13%。(加速系数1.15)

  • 剩下的时间中,第四次迭代节省了66%。(加速系数2.95)

  • 在剩余的时间中,第五次迭代节省了61%。(加速系数2.59)

  • 剩下的时间中,第六次迭代节省了98%。(加速系数45.9)

所有这些大的百分比变化都不是原始时间的大百分比,但在其他问题消除后,它们变得如此。 原始程序节省的总时间超过99.8%。 加速倍数为730倍

大多数没有经历过这样一个过程的程序都有很大的加速空间,但是你不太可能只用分析器来实现它,因为它们所做的只是进行测量。他们并不总是向你指出你需要解决的问题,而你错过的每一个问题都会让你无法获得真正显著的加速

换句话说,最终的加速系数是所有这些单独因素的乘积,如果遗漏其中任何一个因素,它不仅会从产品中消失,还会减少以下因素。 这就是为什么在性能诊断中,“足够好”是不够好的。
你必须找到每一个问题。

当你四处寻找一个分析器时,在调试器IDE中运行该程序并运行它

一些程序员依赖它。这里有一个如何使用它的例子

在这个例子中,下面是发生的情况。发现并消除了一系列问题

  • 第一次迭代节省了33%的时间。(加速系数1.5)

  • 在剩余的时间中,第二次迭代节省了17%。(加速系数1.2)

  • 剩下的时间中,第三次迭代节省了13%。(加速系数1.15)

  • 剩下的时间中,第四次迭代节省了66%。(加速系数2.95)

  • 在剩余的时间中,第五次迭代节省了61%。(加速系数2.59)

  • 剩下的时间中,第六次迭代节省了98%。(加速系数45.9)

所有这些大的百分比变化都不是原始时间的大百分比,但在其他问题消除后,它们变得如此。 原始程序节省的总时间超过99.8%。 加速倍数为730倍

大多数没有经历过这样一个过程的程序都有很大的加速空间,但是你不太可能只用分析器来实现它,因为它们所做的只是进行测量。他们并不总是向你指出你需要解决的问题,而你错过的每一个问题都会让你无法获得真正显著的加速

换句话说,最终的加速系数是所有这些单独因素的乘积,如果遗漏其中任何一个因素,它不仅会从产品中消失,还会减少以下因素。 这就是为什么在性能诊断中,“足够好”是不够好的。
你必须找到每一个问题。

我认为瓦尔格林可以做到这一点。也许有一个到windows的端口?我想valgrind可以做到。也许有一个连接到windows的端口?