question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[BUG] Azure.Storage.Blob v12 performance vs Microsoft.Azure.Storage.Blob v11 on .NET Framework 4.8

See original GitHub issue

Library 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:closed
  • Created a year ago
  • Comments:5 (1 by maintainers)

github_iconTop GitHub Comments

1reaction
elangelocommented, Jul 11, 2022

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.

0reactions
elangelocommented, Jul 8, 2022

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

Read more comments on GitHub >

github_iconTop Results From Across the Web

.Net Framework 4.8, Azure.Storage.Blobs 12.8.0 ...
I created a .Net Framework 4.8 unit test project, to isolate the code. C# project. VS 2019 Pro, latest (as of 2/26/21) ...
Read more >
c# - How to replace Microsoft.WindowsAzure.Storage with ...
First of all, one little correction. Microsoft.Azure.Storage.Blob has been replaced by a newer SDK Azure.Storage.Blobs and it is recommended ...
Read more >
Microsoft Azure Storage SDK for .NET (Deprecated)
Blob Storage SDK v12 for .NET, v12.0.0, The next generation Blob Storage SDK. Supports sync and async IO.
Read more >
Azure Storage Blobs .Net SDK v12 upgrade guide and tips
This article was intended to give the highlights of upgrading your project from Azure Storage Blob .NET SDK v11 and lower to the...
Read more >
Azure.Storage.Blobs 12.17.0
Azure Blob storage is Microsoft's object storage solution for the cloud. Blob storage is optimized for storing massive amounts of unstructured data.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found