Frequently change TextMeshPro text without garbage allocation?

Is there a way to frequently change a timer display created with TMP, without it generating garbage?

I’m currently using TMP.SetText(), which is supposed to not generate garbage, but it does.

Are you profiling it in the editor or from a build? I believe that function does create garbage when running in the editor but not in an actual build. This is because in the editor calling the SetText function will update the .text property of the TMP object, whereas in the built player it does not.