Hi,
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.
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 TranslatePress -> Settings -> Advanced –> Diasble dynamic translation.
Also, 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.