retrofit icon indicating copy to clipboard operation
retrofit copied to clipboard

How does multipart handle large byte arrays?

Open ardevd opened this issue 3 years ago • 1 comments

From my app I'm trying to upload a chunk of data. The app generates a byte array of the data to be uploaded and passes it to the Retrofit request. I've noticed that when I do so the data seems to be copied in memory resulting in twice the memory consumption. A 30 MB data blob turns into 60 mb in memory once it's passed to the POST request with retrofit.

I then tried to migrate to a @Multipart request but that didnt seem to make any difference.

Could someone enlighten me on the best way to do this? Do multipart requests make any sense in this scenario?

ardevd avatar Apr 30 '21 08:04 ardevd

Retrofit currently buffers all request data, yes. We don't have a good workaround here, especially not for a composite request such a multipart.

JakeWharton avatar Sep 21 '21 02:09 JakeWharton