This script changes core mechanisms of the YouTube JS engine.
This script is experimental and subject to further changes.
This might boost your YouTube performance.
CAUTION: This might break your YouTube.
Note: PERF_471489_
option
- This
PERF_471489_
option refers to @nopeless's Youtube Player perf
- The idea was good but the implementation was buggy.
- I use a more gentle way to deal with the function to make sure no visual difference in daily usage.
- Not performance guarantee as that script.
Technical Information quoted from from Youtube Player perf
g
: the youtube player object
g.update
calls g.updateValue
and this is used to change aria-*
for the progress bar (as well as other things)
My script adds a cache to this to check for changing values. It marks dirty=true
if a value is changed. For example, if you are watching at 1:30 mark, then this value is updated to the same value, "1:30" every time you have a new frame. If you get 1:31, a variable is marked dirty and the userscript considers updating the progress bar.
g.Un
is used to change the progress bar's transform (which is both a css and dom reflow, Yuck!) so this is suppressed until dirty is true. There are exactly 4
transforms used for the progress bar update, and its sequential. We can shave a few more cpu resources by checking the count of this function call instead of checking the names.
This has an effect of updating the progress bar every 1 second. As a great side effect of my amazing code the progress bar is updated on the same frame as the timestamp is updated, so it updates EXACTLY once per second, nice!
Note: The information described might not be 100% correct. This is just what nopeless discovered.