Azure Storage Blobs: the API DownloadToStream is always faster than OpenRead
An interesting finding when using the Azure Storage is that the API ICloudBlob.DownloadToStream is always over 35% faster than ICloudBlob.OpenRead, no matter the Blob is page Blob or block Blob. The Storage Client Library we use is 2.0.0.
Here is the different codes for the two APIs:
- DownloadToStream: blob.DownloadToStream(stream);
- OpenRead: var blobStream = blob.OpenRead(); blobStream.CopyTo(stream);
The following table gives the test result of different APIs. The duration is the average of 10 times' running.
Data Size | Open Read Stream (ms) | Download To Stream (ms) | Faster Ratio |
10 KB | 44.1 | 26.5 | 66.42% |
100 KB | 47.9 | 24.3 | 97.12% |
1 MB | 146.8 | 106.1 | 38.36% |
10 MB | 1088.5 | 754.7 | 44.23% |
100 MB | 11752.6 | 7892.2 | 48.91% |