Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
EnTerr
Level 9

Relative performance of different player models

It has been almost 6 years since the first version of Roku player came into existence. There have been changes to the platform, the most significant being switching from MIPS to ARM architecture mid-2011 and a lesser one the change to dual-core ARM (+MHz boost) in Roku3. I could not find discussion on relative performance between different models though. I saw Gandk-Geoff did benchmarks on different BRS features.

I was going over SimpleAnimateSprite code example and since it uses no-wait roMessagePort.GetMessage(), the while gets way loopy while waiting for the time span. Out of curiousity i thought to add a counter and print it every time period (default 1sec) to see how many times it spins between re-draws - and i get about 242,000 loops/sec on Roku3 (5.3.4016). Wow, that's fast. I mean for a BASIC it is, about 4 microseconds per bogo-loop (i figure since that's a bogus benchmark, i will call them bogo-loops to avoid confusion with proper scientific study and animal testing). And so i went running the same on 1st generation (<2200, as exemplified by Roku XD 3.1.1182) and on 2nd generation (3xxx, representative Roku2 XS 5.4.230) players.

1st gen (MIPS, <2200) = ~15.5k bogoloops/s (or ~64 microseconds/bogoloop)
2nd gen (ARM, 3xxx) = ~68k bogoloops/s (~15 usec/bl)
3rd gen (Roku3, 4xxx) = ~242k bogoloops/s (~4 usec/bl)

Mind you the choice of test was arbitrary yet exercises core routines of brightscript (function calls, comparisons, assignments, message fetch and arithmetic). The effect of animation routine is negligible (~2% on the slowest player, easy to check by commenting out redrawing calls) since it happens only once a second.

So speaking back-of-the-napkin calculations and ballpark results, i think we can say BRS code in 2nd generation of players is 4 times faster than 1st and Roku3 is 4x more faster than that. Or: each generation is faster than the previous one by a factor of 4.

Developers, any other observations/bogo-benchmarks?

PS. Update courtesy of @TheEndless:
Roku HD (2500) = ~58k bl/s (~17 µsec/bl)
new Roku 2 (2720) = ~78k bl/s (~13 µsec/bl)
0 Kudos
5 Replies
TheEndless
Level 7

Re: Relative performance of different player models

"EnTerr" wrote:
So speaking back-of-the-napkin calculations and ballpark results, i think we can say BRS code in 2nd generation of players is 4 times faster than 1st and Roku3 is 4x more faster than that. Or: each generation is faster than the previous one by a factor of 4.

Need to pull the new Roku 1 and Roku 2 in there, since they're technically a different generation than the Roku 3. If you don't have one, shoot me a PM with a link to your test and I can run it on a Roku 2 to see what kind of results we get. I have a sneaky suspicion they might actually be a little slower than your 2nd gen result.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
EnTerr
Level 9

Re: Relative performance of different player models

With the updated stats seems we have all processors (per wikipedia listing) covered and that models fall in three distinct groups, with performance growing by factor of 4 with each level:

  1. mod# < 2200 (PNX­8935)

  2. 2300 < mod# < 4000 (BCM­2835/BCM­7208/BCM­7218)

  3. mod# > 4000 (BCM­11130)

The grouping should hardly be a surprise. Barely worth mentioning, the new BCM­7218 lineup (2013 LT, Roku 1, Roku 2) is a hair faster than BCM­2835-based 2011 "classic Roku 2" - and the 2012 "Roku LT" and "Roku HD" with BCM­7208 are a hair slower. Where a "hair" is <15%, so never mind.
0 Kudos
EnTerr
Level 9

Re: Relative performance of different player models

Today I ran some loops on Roku HDMI Stick - and while i don't know for sure the exact CPU inside - it seems to behave just like any other 3xxx model. From BrS developer's point of view, i expect model 3500 "Sugarland" to act in line with the Roku 2 HD/XD/XS base.
0 Kudos
EnTerr
Level 9

Re: Relative performance of different player models

Update two years later:

New HDMI Stick (ARM, #3600) = 176k bogoloops/s (~6us/bl)

See also in this thread:
"Re wrote:
Let me share my experience as a software developer who has tested his code (a single-thread...





TLDNR: The new stick performs somewhere in between Roku 3 and Roku 2XS for "classic" code.
0 Kudos
Komag
Level 9

Re: Relative performance of different player models

That's very helpful to know, thanks 8-)
0 Kudos