您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
修改 YouTube 的 JS 引擎以提升性能
当前为
Please make sure you install the script from gf.qytechs.cn, not fake sites.
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.
overscrollConfig
)PERF_471489_
optionPERF_471489_
option refers to @nopeless's Youtube Player perf
g
: the youtube player object
g.update
callsg.updateValue
and this is used to changearia-*
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 exactly4
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.
Before | After |
![]() |
![]() |
StampDomArray_
This userscript performs a deep renovation of YouTube's internal rendering logic, focusing on how UI components are created, updated, reused, and removed. These changes improve performance, memory handling, and user experience during dynamic content updates.
🔧 Custom Component Lifecycle Management
stampDomArray_
method with a custom version.♻️ Intelligent Component Reuse
🗑 Safe Deletion Pipeline
pDivDeletion
) to handle temporary or delayed removals.MutationObserver
to watch for elements marked for deletion, ensuring clean removal and no orphaned nodes.🧠 Advanced Rendering Logic
⚙️ Shadow DOM + SVG Sandbox Initialization
<defs>
namespace inside an SVG + Shadow DOM combo — likely used as a safe space for off-screen or control elements.📦 Reuse Memory Safety
WeakRef
and FinalizationRegistry
(when available), ensuring garbage collection of unused components and preventing memory leaks.🧬 Symbol-based Internal Metadata
Symbol()
keys to prevent naming collisions and preserve component-state relationships internally.📊 Component Binding Coordination
🔄 Stable List Mode Overhaul
STAMPER_STABLE_LIST
behavior:
Faster and more efficient component updates
(e.g., smoother scrolling, better playlist or feed rendering)
Less visual flicker or redraw glitches
thanks to reuse and smarter diffing.
Improved memory handling
especially during long YouTube sessions or heavy usage.
This renovation is part of a userscript enhancement layer, aiming to augment YouTube's renderer for better stability and performance, while staying compatible with the platform's structure.
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址