Progressive download CPU consumption

As progressive download consumes more CPU than streaming, I’ve decided to research this issue further.
 
I’ve implemented a possibility to throttle the bandwidth used for the progressive download. The throttling happens on the client side, by inserting some Thread.Sleeps in the loop where the downstream is being repeatedly read in a memory buffer.
 
And I could measure the following CPU loads:
Progressive download
(unconstrained)
40%
Throttled to 6mbit/s
28%
Throttled to 2mbit/s
23%
Throttled to 1mbit/s
18%
Adaptive Streaming
10%
 
In the adaptive streaming case, I believe, it is not only their more optimized download loop implementation, but also the fact that they use MP4 container format instead of ASF can play a role. Alex Zambelli describes Smooth Streaming Architecture in his blog (Smooth Streaming is an alias of adaptive streaming).
 
I will also test CPU consumption for the same movie when it is being streamed via Windows Media Services, when I obtain a new test server.

Leave a Reply

Categories

Archive