Upgrading macOS from Sequoia to Tahoe can invoke a mixed bag of feelings.
Luckily I have a work MacBook that I can test it on before actually committing the upgrade on my personal MacBook.
It seems that upgrading to Tahoe can cause a tank in the GPU performance, where the process WindowServer uses more than 30% for any animations that runs. Spotlight, Safari, Mission Control and even the new Launchpad seems to be very laggy, as if Pro-Motion was not working at all.
I was searching around for a solution on the first upgrade when the version was still 26.0 but to no avail.
However today, it seems the solution has been found and the culprit was none other than Electron, the cross-platform desktop application framework. The fix and explanation to Electron’s code can be found in the PR here.
There is a project that tracks whether an Electron packaged app has been resolved.
For those that has not been resolved, running the following command in Terminal and restarting any applications that uses Electron will workaround it. This particular command does not persist after reboot and have to be run again after a reboot.
launchctl setenv CHROME_HEADLESS 1
To unset:
launchctl unsetenv CHROME_HEADLESS