我有一个C#MVC应用程序,在Azure上运行WCF服务.第一个当然是托管在免费版本上,但是当我有一个顺利运行时,我想尝试看看它是如何在Basic或Standard上运行的,据我所知应该是专用服务器.
令我惊讶的是,一旦从Free更改为Standard或Basic,代码运行速度明显变慢.我选择了最小的实例,但仍然期望它们比Free选项表现更好?
从我的性能日志记录中,我可以看到运行速度特别慢的代码是从Task.Run作为异步启动的.最初它是旧学校Thread.Start(),但考虑是否可能在一些低优先级线程中产生它,因此将其更改为Task.Run - 没有这改变任何东西 - 所以也许它与它无关 - 但它可能,所以现在你知道了.
运行速度非常慢的代码基本上适用于某些XML文档,通过XDocument,XElement等.它循环,有一些LINQ等,但没什么太花哨的.但是在Basic和Standard上,它和Free版本相比还要慢5到10倍吗?对于完全相同的请求,免费版使用大约1000毫秒,而基本和标准使用8000-10000毫秒?
在每次测试中,我尝试了5-10次但没有任何响应时间减少.我想过在Basic/Standard完全正常运行之前是否需要等待几个小时,或者类似的东西,但是每次我切换回来时,免费版本都会从一开始就超过它.
有什么建议?免费版本出于某种奇怪的原因比Basic或Standard更强大,或者我在Basic或Standard上运行后需要配置不同的东西吗?