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)