That is not true. There are some features which makes only the GUI version slower, but it's definitely not "almost always" that the GUI is the reason. There are a lot of features/packages which makes Emacs slower in general, no matter GUI/TUI.
So profiling, or bisecting the init file can be used find out the problem.
I simply use:
I use it manually, but I don't care too much because I don't edit my init files too often anymore. But it shouldn't be too hard to run this function automatically at boot if the
.elc
is outdated compared to the.el
.