![](/img/trans.png)
[英]How to measure actual time CPU spent executing the code using the stopwatch?
[英]Measure cpu intensive time with async code
我们想将我们应用程序的一部分外包给外部公司。 这些组件向外部网站发出异步请求,并使用 html 解析器或正则表达式处理内容。
async Task Do()
{
var webContent = await Get("http://...");
var match = Regex.Match(webContent);
if (IsXXX(match))
{
webContent = await Get("http://other...");
}
}
每个组件都是不同的,有些只做一个请求,有些做更多。 我们希望确保 CPU 密集型部分(Regex、Parsing)花费的时间不超过 100 毫秒,并希望将其作为质量保证管道的第一步进行自动测试。 有没有办法在没有 Web 请求等待时间的情况下测量性能?
我目前只看到两种解决方案,但想知道是否有更好的方法:
是否有一些内置的解决方案?
模拟 IO 绑定的 Web 请求以立即返回一个 HTML 字符串,该字符串将需要类似的 CPU 来处理。 例如,使用return Task.FromResult(XXX)
来获取已完成的任务。 然后对整个方法进行测量。
请注意,您可以使用Microsoft Fakes将任何内部调用替换为您自己的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.