increase performance of queryFeedHeadlines request

This commit is contained in:
Andrew Dolgov 2007-05-18 05:16:33 +01:00
parent 947c61863e
commit 469219162f
2 changed files with 27 additions and 4 deletions

View File

@ -178,8 +178,13 @@
if ($op == "viewfeed") { if ($op == "viewfeed") {
$print_exec_time = true;
$timing_info = getmicrotime();
print "<reply>"; print "<reply>";
if ($_GET["debug"]) $timing_info = print_checkpoint("0", $timing_info);
$omode = db_escape_string($_GET["omode"]); $omode = db_escape_string($_GET["omode"]);
$feed = db_escape_string($_GET["feed"]); $feed = db_escape_string($_GET["feed"]);
@ -200,6 +205,8 @@
print "]]></headlines>"; print "]]></headlines>";
if ($_GET["debug"]) $timing_info = print_checkpoint("10", $timing_info);
if (is_array($topmost_article_ids) && !get_pref($link, 'COMBINED_DISPLAY_MODE')) { if (is_array($topmost_article_ids) && !get_pref($link, 'COMBINED_DISPLAY_MODE')) {
print "<articles>"; print "<articles>";
foreach ($topmost_article_ids as $id) { foreach ($topmost_article_ids as $id) {
@ -208,10 +215,14 @@
print "</articles>"; print "</articles>";
} }
if ($_GET["debug"]) $timing_info = print_checkpoint("20", $timing_info);
print "<counters>"; print "<counters>";
getAllCounters($link, $omode); getAllCounters($link, $omode);
print "</counters>"; print "</counters>";
if ($_GET["debug"]) $timing_info = print_checkpoint("30", $timing_info);
print "</reply>"; print "</reply>";
} }

View File

@ -2532,7 +2532,7 @@
$query = "SELECT $query = "SELECT
guid, guid,
ttrss_entries.id,ttrss_entries.title, ttrss_entries.id,ttrss_entries.title,
SUBSTRING(updated,1,16) as updated, updated,
unread,feed_id,marked,link,last_read, unread,feed_id,marked,link,last_read,
SUBSTRING(last_read,1,19) as last_read_noms, SUBSTRING(last_read,1,19) as last_read_noms,
$vfeed_query_part $vfeed_query_part
@ -2563,7 +2563,7 @@
$result = db_query($link, "SELECT $result = db_query($link, "SELECT
guid, guid,
ttrss_entries.id as id,title, ttrss_entries.id as id,title,
SUBSTRING(updated,1,16) as updated, updated,
unread,feed_id, unread,feed_id,
marked,link,last_read, marked,link,last_read,
SUBSTRING(last_read,1,19) as last_read_noms, SUBSTRING(last_read,1,19) as last_read_noms,
@ -3564,6 +3564,8 @@
function outputHeadlinesList($link, $feed, $subop, $view_mode, $limit, $cat_view, function outputHeadlinesList($link, $feed, $subop, $view_mode, $limit, $cat_view,
$next_unread_feed, $offset) { $next_unread_feed, $offset) {
$timing_info = getmicrotime();
$topmost_article_ids = array(); $topmost_article_ids = array();
if (!$offset) $offset = 0; if (!$offset) $offset = 0;
@ -3636,9 +3638,13 @@
$real_offset = $offset * $limit; $real_offset = $offset * $limit;
if ($_GET["debug"]) $timing_info = print_checkpoint("H0", $timing_info);
$qfh_ret = queryFeedHeadlines($link, $feed, $limit, $view_mode, $cat_view, $qfh_ret = queryFeedHeadlines($link, $feed, $limit, $view_mode, $cat_view,
$search, $search_mode, $match_on, false, $real_offset); $search, $search_mode, $match_on, false, $real_offset);
if ($_GET["debug"]) $timing_info = print_checkpoint("H1", $timing_info);
$result = $qfh_ret[0]; $result = $qfh_ret[0];
$feed_title = $qfh_ret[1]; $feed_title = $qfh_ret[1];
$feed_site_url = $qfh_ret[2]; $feed_site_url = $qfh_ret[2];
@ -3723,10 +3729,10 @@
# $line["title"] . "</a>"; # $line["title"] . "</a>";
if (get_pref($link, 'HEADLINES_SMART_DATE')) { if (get_pref($link, 'HEADLINES_SMART_DATE')) {
$updated_fmt = smart_date_time(strtotime($line["updated"])); $updated_fmt = smart_date_time(strtotime($line["updated_noms"]));
} else { } else {
$short_date = get_pref($link, 'SHORT_DATE_FORMAT'); $short_date = get_pref($link, 'SHORT_DATE_FORMAT');
$updated_fmt = date($short_date, strtotime($line["updated"])); $updated_fmt = date($short_date, strtotime($line["updated_noms"]));
} }
if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) { if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) {
@ -3928,4 +3934,10 @@
$key . '">' . $key . '</a> '; $key . '">' . $key . '</a> ';
} }
} }
function print_checkpoint($n, $s) {
$ts = getmicrotime();
echo sprintf("<!-- CP[$n] %.4f seconds -->", $ts - $s);
return $ts;
}
?> ?>