Paint performance on BigSur

Hi all,

I have a gui application that has a small button that blinks at a fixed rate.
Basically, I’m setting it’s background colour on a Timer every 20ms.
This runs fine on windows, and macos up to Catalina.

However, after trying to run it on BigSur, I found the app takes 90% CPU while it takes <10% on windows & Catalina. I did some debugging and research and I think changing that little component colour makes the whole application been redrawn every timerCallback, while on windows & Catalina only redraws the component area. Is this possible?

Anyone found any related issues or has any possible solutions to this?
Thank you very much!