vsinstr.exe检测了大型可执行文件的性能

vsinstr.exe instrumented large executable performance

本文关键字:可执行文件 性能 大型 exe 检测 vsinstr      更新时间:2023-10-16

我想使用Visual Studio vsinstr.exe工具来检测非托管c++可执行文件(遗留应用程序)。这是一个非常大的项目,这将是一种如何将我们庞大的测试自动化内容映射到实际代码的方法,以确定当对代码库进行更改时,哪些测试用例会受到影响。

然而,我担心这种插入指令的可执行文件的性能,因为我们基本上需要运行整个测试自动化内容来获得覆盖率数据(或在代码更改时更新它),这将每天晚上完成。为了了解情况,测试自动化运行可能需要10个小时(GUI测试,由于遗留架构,没有单元测试)

有人对插入指令的可执行文件的性能有实际经验吗?

我意识到这个问题越来越长(越来越老),所以我的答案是为其他偶然发现这个问题的用户准备的。

根据我在现实世界中的经验,插入指令的二进制文件运行速度确实慢得多,通常是几个数量级。然而,我只插入了MANAGED二进制文件,OP特别指出了非托管C++,所以"你的里程可能会有所不同。"

我的建议是运行一个子集的测试,耗时2-3分钟。将该子集运行3次,并对实际运行时间结果取平均值。然后对二进制文件进行检测,运行相同的测试3次并计算平均值。由于应用程序初始化,测试次数减少,数据可能会失真。更多的测试,您可能会为每个仪器测试等待一个小时。