vsinstr.exe检测了大型可执行文件的性能
vsinstr.exe instrumented large executable performance
我想使用Visual Studio vsinstr.exe工具来检测非托管c++可执行文件(遗留应用程序)。这是一个非常大的项目,这将是一种如何将我们庞大的测试自动化内容映射到实际代码的方法,以确定当对代码库进行更改时,哪些测试用例会受到影响。
然而,我担心这种插入指令的可执行文件的性能,因为我们基本上需要运行整个测试自动化内容来获得覆盖率数据(或在代码更改时更新它),这将每天晚上完成。为了了解情况,测试自动化运行可能需要10个小时(GUI测试,由于遗留架构,没有单元测试)
有人对插入指令的可执行文件的性能有实际经验吗?
我意识到这个问题越来越长(越来越老),所以我的答案是为其他偶然发现这个问题的用户准备的。
根据我在现实世界中的经验,插入指令的二进制文件运行速度确实慢得多,通常是几个数量级。然而,我只插入了MANAGED二进制文件,OP特别指出了非托管C++,所以"你的里程可能会有所不同。"
我的建议是运行一个子集的测试,耗时2-3分钟。将该子集运行3次,并对实际运行时间结果取平均值。然后对二进制文件进行检测,运行相同的测试3次并计算平均值。由于应用程序初始化,测试次数减少,数据可能会失真。更多的测试,您可能会为每个仪器测试等待一个小时。
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何更改使用 CPack 安装的可执行文件的名称?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 linux 可执行文件中使用静态库
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 编译的C可执行文件被Windows defender检测为病毒
- Linux 可执行文件通过 dlopen 在emplace_back崩溃打开共享库
- 是否可以在命令行中将输入参数传递给可执行文件
- 如何在可执行文件中存储常量数组?
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 与直接编译的可执行文件相比,linux.so的性能有所下降
- vsinstr.exe检测了大型可执行文件的性能
- 将资源文件嵌入可执行文件的性能