patch, I’ve had similar problem.
Add &depth=`1` to your all getResources calls where you list only one level of resources. gR by default has depth set to 10 and checks all children if they have another children and so on.
Then install getPage snippet, find declaration of $properties[’cachePageKey’] and modify it to this (around line 30):
...
if ($properties['cache']) {
$properties['cachePageKey'] = $modx->context->get('key') . '/elements/'. $properties['element'] .'/' . $properties['page'] . '/' . md5(implode('',$scriptProperties).implode('', $modx->request->getParameters()));
...
and change getResources calls to:
[[!getPage?
&element=`getResources`
&elementClass=`modSnippet`
&cache=`true`
... (rest of getResources parameters) ...
]]
This will not speed up first page view after clearing the cache, but will improve rendering times for uncached pages that use common getResources calls. That’s why the modification is needed (by default getPage caches snippet output per document, not global).
Also, use as little chunks as possible - they take time to load when there’s no cache.
After all this (I do not remember now if I did something else) rendering time dropped from 10s to 4s for uncached, for uncached that use common snippet calls 2s. When cached 0.15 to 0.6 most of the time.
All done on this site
http://www.iqfm.eu which has very time consuming tabs on right of the screen. The site is on good, but shared server.
Hope this helps. ;-)