Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.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
使用devpartner分析特定方法 我使用DeValpUp来剖析一些C++代码的性能。有没有办法只评测一个特定的函数,或者从评测中删除一个特定的函数?_C++_Visual C++_Profiling_Devpartner - Fatal编程技术网

使用devpartner分析特定方法 我使用DeValpUp来剖析一些C++代码的性能。有没有办法只评测一个特定的函数,或者从评测中删除一个特定的函数?

使用devpartner分析特定方法 我使用DeValpUp来剖析一些C++代码的性能。有没有办法只评测一个特定的函数,或者从评测中删除一个特定的函数?,c++,visual-c++,profiling,devpartner,C++,Visual C++,Profiling,Devpartner,在某种程度上。DevPartner为错误检测、覆盖或性能插入代码,并且可以从插入中排除某些名称空间、某些源文件甚至特定函数。甚至有一种方法可以通过STL的名称空间“std”排除STL。如果没有检测,您将无法进行分析 防止检测发生所需的生成选项是“/nmignore”,它有许多可能的参数。我自己不使用它,所以我必须从负责编译时插装代码的人那里获得详细信息(我的专长是BoundsChecker的后端)。您需要在C/C++下的项目设置中指定/nmignore::其他命令行选项 对于contains子句

在某种程度上。DevPartner为错误检测、覆盖或性能插入代码,并且可以从插入中排除某些名称空间、某些源文件甚至特定函数。甚至有一种方法可以通过STL的名称空间“std”排除STL。如果没有检测,您将无法进行分析


防止检测发生所需的生成选项是“/nmignore”,它有许多可能的参数。我自己不使用它,所以我必须从负责编译时插装代码的人那里获得详细信息(我的专长是BoundsChecker的后端)。

您需要在C/C++下的项目设置中指定/nmignore::其他命令行选项

对于contains子句,函数名可以是完整的函数名、函数开头,后跟*或*某种模式*

所以/nmignore::main将排除任何文件中包含的main /nmignore:main.cpp:myfunc将排除仅在main.cpp中以myfunc开头的所有函数 /nmignore:*:std::将排除所有文件中的所有std::namepspace函数


指令插入发生在编译过程C1和C2之间,因此所有函数都已从头文件内联到源文件中。小心通配符,因为您可能会排除比计划中更多的通配符。

我有幸在没有任何指令插入的情况下编译了完整的程序,然后打开指令插入并重新编译了一个文件。那是用于泄漏检测,而不是分析,尽管如此。

Mark是DevPartner Studio编译时插装方面的主题专家。正如另一个人提到的,我想补充的是,您可以使用插装来编译完整的程序,然后使用性能或覆盖率插装来重新编译您感兴趣的一个模块/文件。现在,这在VS2010之前适用,但VS2010和2012使用MSBuild,并且一旦切换了检测设置,所有文件都将标记为脏文件,所有文件都将重新编译。抱歉,但这正是我们必须如何与MSBuild进行接口的方式。@Mark抱歉回答得太晚了。我按照您的建议尝试了tu use/nmignore,但没有结果。下面是我所做的:使用VisualStudio 2010,在C++ >命令行>附加选项中,我添加/nMnIs::Read DXF(我不想配置的函数)。此函数是库的一部分,因此我还向测试项目添加了/nmignore选项。问题是,我看不出有什么区别,函数readDXF仍在分析中。您在/nmignore指令中缺少“”所有文件部分。它应该是/nmignore::readDXF。我还会在readDXF前后加上一个*号,因为它可能会被弄坏而不会被忽略,所以/nmignore::*readDXF*号表示您的忽略。希望你能帮上忙