performance profiling - 95% of the time is spent in "conversation()" e.g. rendering and templates, even with the new theme engine. The time spent in the DB is miniscule. Will have to profile the bbcode processing and template engines individually to drill down further.

This commit is contained in:
friendica 2013-02-09 02:46:50 -08:00
parent 28b11f3567
commit 55df911403
2 changed files with 26 additions and 6 deletions

View File

@ -489,6 +489,10 @@ function dlogger($msg,$level = 0) {
}}
function profiler($t1,$t2,$label) {
if(file_exists('profiler.out') && $t1 && t2)
@file_put_contents('profiler.out', sprintf('%01.4f %s',$t2 - $t1,$label) . "\n", FILE_APPEND);
}
if(! function_exists('activity_match')) {

View File

@ -560,7 +560,7 @@ function network_content(&$a, $update = 0, $load = false) {
}
else {
$itemspage = get_pconfig(local_user(),'system','itemspage');
$a->set_pager_itemspage(((intval($itemspage)) ? $itemspage : 40));
$a->set_pager_itemspage(((intval($itemspage)) ? $itemspage : 30));
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
}
@ -647,6 +647,7 @@ function network_content(&$a, $update = 0, $load = false) {
}
$first = dba_timer();
// Then fetch all the children of the parents that are on this page
@ -662,12 +663,20 @@ function network_content(&$a, $update = 0, $load = false) {
dbesc($parents_str)
);
$second = dba_timer();
xchan_query($items);
$third = dba_timer();
$items = fetch_post_tags($items);
$fourth = dba_timer();
$items = conv_sort($items,$ordering);
//logger('items: ' . print_r($items,true));
}
@ -692,19 +701,26 @@ function network_content(&$a, $update = 0, $load = false) {
$mode = (($nouveau) ? 'network-new' : 'network');
$first = dba_timer();
$fifth = dba_timer();
$o .= conversation($a,$items,$mode,$update,'client');
$sixth = dba_timer();
$second = dba_timer();
if(! $update)
$o .= alt_pager($a,count($items));
// logger('parent dba_timer: ' . sprintf('%01.4f',$first - $start));
// logger('child dba_timer: ' . sprintf('%01.4f',$second - $first));
if($load) {
profiler($start,$first,'network parents');
profiler($first,$second,'network children');
profiler($second,$third,'network authors');
profiler($third,$fourth,'network tags');
profiler($fourth,$fifth,'network sort');
profiler($fifth,$sixth,'network render');
profiler($start,$sixth,'network total');
profiler(1,1,'--');
}
return $o;
}