Azure WebJob与功能的Blob读取速度减慢

时间:2018-08-12 20:10:09

标签: azure azure-functions azure-webjobs

我正在努力解决问题,我使用的代码与从WebJob迁移到Function的代码相同,其中一部分从存储中获取一堆Blob,并将它们拼接在一起,代码主要是CPU工作,而不是在循环中从存储中获取Blob时。从存储中检索Blob时,该函数的运行速度提高了5倍,使用的代码是:

WebJob(不是异步)

    var cloudStream = new MemoryStream();
    container.GetBlockBlobReference(blobPath).DownloadToStream(cloudStream);
    cloudStream.Seek(0, SeekOrigin.Begin);

功能(异步)

        var cloudStream = new MemoryStream();
        await container.GetBlockBlobReference(blobPath).DownloadToStreamAsync(cloudStream);
        cloudStream.Seek(0, SeekOrigin.Begin);

我最初以为是Nagle算法,但在WebJob中将其设置为false毫无用处。两者都使用Azure存储库的7.2.1,所以我不知道为什么一个(函数)快大约4-5倍;为什么?我都在本地调试中运行它们。

任何关于我可能会缺少的想法的想法,肯定异步不会带来太大的改变吗?我唯一想到的可能是某些App Insights跟踪正在降低它(WebJob)的速度,因为我知道函数当前不跟踪依赖项?我在代码的两边都将秒表放在webjob中,经过的ms似乎与调试msg之间的时间不一致,或者我认为这很奇怪?

enter image description here

函数中针对同一文件的相同调试是:

enter image description here

0 个答案:

没有答案