Hey there,
Page translation can be CPU intensive. We have to read the entire page as a string and then is transformed it into a big object which is the HTML. That object basically needs to stay in the memory.
We recommend you use a caching plugin. Cached pages are not processed on every page load. TranslatePress can be resource intensive with large pages, but it depends on how much HTML content there is on one page.
Automatic translation will slow the page down on the first load, so the PHP will wait for the translations and then show the page. This only happens once or if you add/change strings.
Another performance thing you might want to look for, is that we have a listener for Javascript strings that when it detects a text change on the page (say a particular JS script adds a notice), we query the server for a translation. This ajax call is also fast as it doesn’t go through the normal WordPress ajax, however, it can cause issues when there is a lot of traffic to your website.
The good part is that you can disable this functionality from TP Settings -> Advanced tab –> Troubleshooting section –> Disable dynamic translation.
Also, the Automatic translation memory can increase the loading time, so be sure you disable it from TP Settings –> Advanced tab –> Miscellaneous section for testing purpose.
You should also try the Optimize TranslatePress database tables option from TP Settings –> Advanced tab –> Debug section to clear them. See if it helps.
Otherwise, try to disable the gettext translation using the Disable translation for gettext strings option from TP Settings –> Advanced tab –> Debug section. One reason may be that you could have many gettext strings translated on your site.
Let me know if any of these help