Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
owen777
Binge Watcher

Benchmark Results: AA vs Node

Hey!
Are you curious about Roku apps performance? Check out my new article "Roku's Scenegraph Benchmarks: AA vs Node" on Medium: https://medium.com/@pawelhertman/rokus-scenegraph-benchmarks-aa-vs-node-9be5158474c1
You're welcome to ask questions or put remarks there. If you liked it, don't hesitate to "clap your hands" 😉
0 Kudos
3 REPLIES 3
lkrocek
Binge Watcher

Re: Benchmark Results: AA vs Node

Nice article but nothing surprising it's similar as in Javascript creating an objects which contains some basic fields and methods. Logically nodes must be slower then AA because it contains more interfaces ... to create custom list must be faster then use predefined grid components when you avoid ContentNodes and render it based on your JSON data, of course depends on amount of data, but here was a topic about lazy loading where your own list will improve your performance as well. 

When you have smaller amount of your data is faster to create an application and not so big deal with performance for user's feeling to use predefined components.
Platforms integration specialist
====================
@ https://suite.st/
0 Kudos
owen777
Binge Watcher

Re: Benchmark Results: AA vs Node

Thank you. About nothing surprising - for me, an "optimization threshold" for a specific length of AA keys was a big surprise. Everyone know basics (mentioned from the Roku Docs at the beginning of the article), but IMO the exact differences aren't weren't so obvious
0 Kudos
lkrocek
Binge Watcher

Re: Benchmark Results: AA vs Node

Well there is lot of things to avoid, eg.: to avoid hasField or doesExists for node props or AAs and replace it with simple type(node["myProp"]) <> "Invalid" to decrease performance leak, when I do it in loop for nth thousands of repeating it could be different in a few seconds! (depends on your roku device, I have Roku 3 which is kinda good but some older Roku Stick where is really different for 1ms per one operation, so loop with 1200 repeating is reduced for 1200 ms), and so.

Basically is good to work often with measuring util as roTimespan to figure out this issues.

NOTE: subtype() is also expensive method without workaround but just store it to variable when you need to use it repeatable.
Platforms integration specialist
====================
@ https://suite.st/
0 Kudos