[BUG] Azure.Storage.Blob v12 performance vs Microsoft.Azure.Storage.Blob v11 on .NET Framework 4.8
See original GitHub issueLibrary name and version
Azure.Storage.Blob v12.*
Describe the bug
I have done 2 straight migrations of the v11 SDK to v12 SDK. One on dotnet 6 and one on .NET Framework. The dotnet and the .NET frameworks implementation virtually contain the same logic (concering Azure Blbos) but the performance of 2 solutions is vastly different. A simple call the BlobClient.Exists on the dotnet solution is logged by Application Insights as roughly taking 20 to 30 milliseconds. Doing the same on .NET Framework without any tuning this is about 500 milliseconds.
I was able to get the .NET Framework performance to roughly 80 ms (best case scenario) by caching the BlobServiceClient
(which btw i’m not doing on the dotnet solution). But i’m now seeing a performance degradation through the lifespan of my application. (the call can take up to 200 ms after a couple of hours of running)
Expected behavior
Similar performance in the .NET Framework libraries as the dotnet framework libraries.
I understand dotnet is the way forward but I was not expecting such large performance differences between a library simply wrapping a bunch of http(s) calls.
Actual behavior
The .NET framework perform 10 to 20 times slower on the same code base. The .NET framework implementation seems to suffer from degrading performance through lifespan of the application
Reproduction Steps
N/A yet
Environment
the dotnet exe is hosted on AKS on linux containers the .NET framework exe is hosted on AKS on windows containers
Issue Analytics
- State:
- Created a year ago
- Comments:5 (1 by maintainers)
Top GitHub Comments
I haven’t heard anything on this issue. Going to close it myself as i think by caching the BlobServiceClient as recommended i get most of the performance i was expecting.
I investigated this a bit further and by managing my own HttpClient connction pool i’m able to keep a consistent performance through the lifetime of my application. This is a bit of a problem as this is more or less disencouraged from doing this