Background downloading causing performance jitters

Hi Everyone

Apologies if this has been answered, but I’ve looked everywhere in the last week and could not find an answer to my exact problem.

I am using www to download levels that are stored in assetbundles (WWW.LoadFromCacheOrDownload). When the game starts the first level is downloaded using a GUI and a progress bar. While the player is busy playing this level I start downloading the next level so that it might be ready for him by the time he completes the first level. It works great, except for jitter during the download. (Not when the asset file is being loaded at the end of the download). If I set my local apache server SendBufferSize to something small like 512 the download jitter disappears. If I increase the SendBufferSize the jitter increases accordingly. This make me think that Unity downloads a chunk of data into memory and does some processing at the end of each buffered chunk. (Write it to disk?) The bigger the chunk of data the more the game play will experience hiccups.

Now while adjusting SendBufferSize sounds like a solution, it does not work when the assetbundle is hosted on a public server. If I adjust the SendBufferSize it makes no difference. I assume there are caching servers between my device and the server and I am unable to adjust SendBufferSize on those.

I have tried modifying the www thread priority as well as backgroundLoadingPriority but it caused only a slight improvement.

Platform: iOS
Xcode 5.1.1
Unity 4.5.2p1

Any ideas?

I had to implement a custom downloader since the Unity WWW jitter could not be resolved.