Azure功能内置VS与内置门户性能对比,用于添加存储队列

r1zk6ea1  于 2022-11-30  发布在  其他
关注(0)|答案(1)|浏览(100)

我注意到,与Azure门户上创建的其他函数相比,从HTTP Azure函数向存储队列添加消息相当慢(平均1.5秒)。
为了测试这一点,我创建了一个非常基本的Azure函数,它接受HTTP请求,向其添加一个唯一ID,并将其作为消息添加到存储队列。我创建了两个类似的函数应用程序。在其中一个应用程序上,我在Azure门户上创建了这个简单的Azure函数,而在第2节,我通过一个新的VS项目上传了一个。VS项目函数的性能是在500个请求中平均运行时间为900ms。在Azure Portal上创建的函数的性能在500个请求上平均运行时间为200毫秒。为什么会有这么大的性能差异?
功能如下:

[FunctionName("Function1")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            [Queue("data"), StorageAccount("AzureWebJobsStorage")] ICollector<string> queue,
            ILogger log)
        {
            string uniqId = Guid.NewGuid().ToString("N");

            string queryString = $"{req.QueryString.ToString().Trim('?')}&ui={uniqId}";
            queue.Add(queryString);

            return new OkObjectResult("OK");
        }
46scxncf

46scxncf1#

门户Azure函数和VS IDE Azure函数项目之间存在代码类型差异,门户函数应用程序扩展的C#脚本(.csx)类型和C#类库(.cs)显示了性能差异的原因。
如Azure Functions的MS Doc中所述,门户函数可能会有一点不同,因为它们必须经过编译,然后运行,从IDE部署是预编译函数。相比之下,预编译函数将占上风。

相关问题