Visual Studio使用Json上下文参数加载CPU使用率

时间:2015-10-20 11:27:21

标签: c# json visual-studio-2015 load-testing

我使用Visual Studio 2015来记录负载测试使用的WebPerformance测试。在初始录音后,我可以运行20个同步用户,只有大约25%的CPU使用率。然而,我测试的网站使用Json,所以为了使测试更加真实,我为Json添加了一个自定义提取规则:

GetThreadContext(hThread, &ctx);
ctx.Dr7 = 0x00000000;
SetThreadContext(hThread, &ctx);
ContinueDebugEvent(dbgEvent.dwProcessId, dbgEvent.dwThreadId, DBG_CONTINUE); 
DebugActiveProcessStop(pid);

我用它来从响应中提取几个Json属性,并使用上下文参数将它们添加到后续请求中。

在添加了几个这样的提取并将一些上下文参数传递给请求之后,我的负载测试达到了100%的CPU使用率,只有5个同时用户。

上述提取规则在WebPerformance测试中使用了大约20次,在任何单个响应中使用了0-5次。 Json响应和请求长约2k个字符。最大的提取包括大约500个字符。

我可以理解,由于更真实的Json被传递,响应时间是否上升或类似的事情。但是我不明白为什么CPU使用量猛增?请求的响应时间是否会影响负载测试的CPU使用情况?

提取+上下文参数是不是很糟糕(在CPU使用情况下)在请求中实现Json的方式?有没有更智能的方法来节省CPU使用率?

1 个答案:

答案 0 :(得分:1)

大多数CPU使用率似乎是由在验证规则中使用上述自定义Json提取引起的。我删除了它,因为验证并不重要,一切都运行得更顺利。