Q:

How to find out from Apache what pages cause long loading times? 

How can i find out what PHP scripts take longest to load in Apache? 

A:

There are a few ways to do this. 
1: Enable mod_status on your webserver.  This allows you to get an overview of how the apache server is behaving in general by browsing to  /server-status/. Remember to limit access to this location:
ExtendedStatus on
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.0.0/24
</Location>

2: Modify your LogFormat directive to add processing time.  You can then associate URIs with response times:
LogFormat "%h %t \"%r\" %b sec:%T usec:%D"      

This will display remote ip, request date-time, request, bytes sent, seconds and microseconds. 
3: For script memory size and script hit ratio, the administrative console that comes with Xcache is very good.  Scripts with large class heirarchies can expand to many megs in memory. 
4: Profiling your php scripts might help.  If you want to focus on profiling a single script, Xdebug will certainly help.  User Damien suggests a way.  I would suggest logging your memory usage and also using microtime, but putting a threshold for logging onit, like so:
$THRESH = 2;

$profile = array();
$profile['start'] = microtime( true );
// stuff
$profile['end'] = microtime( true );
$profile['delta'] = $profile['end'] - $profile['start'];

if( $profile['delta'] >= $THRESH ) 
    error_log( __FILE__.": " .$profile['delta']."  seconds " );

Adjusting the threshold keeps your logs a lot cleaner.