You may be running into update queueing. I think I’ve described it once before on these forums because somebody else had this issue, but basically if you have a constant stream of updates to part properties that require rebuilding rendering data, then due to how update throttling is implemented a few clusters (groups of parts) can basically hog the entire update budget, and if they change all the time this would mean other parts are permanently starved.
You can tell if this is happening by looking at the “queue” number in “Geometry Gen” row of Ctrl+Shift+F2 panel. If, when the problem occurs, the number is constantly non-zero and stays this way, your game is subject to this issue.
We are currently reworking this system pretty much entirely so these kinds of issues will go away in the future.
If you know which parts you’re updating very frequently - basically this “heavy update” triggers whenever there’s a part or decal property change that is not Part.CFrame (this also happens if you reconfigure joints every frame by changing C0/C1 or removing/readding joints, but does not happen for Motor C0/C1 changes IIRC) - you can try to avoid doing this update as a short-term fix. I’d be curious as to whether there’s something unexpected that does this - last time this happened this was due to Motor CFrames unnecessarily triggering the update in Phantom Forces, which was fixed, so maybe there’s a reasonably simple fix here as well…