diff --git a/include/plaintext.php b/include/plaintext.php index 632abf30cb..6ab4ec77d6 100644 --- a/include/plaintext.php +++ b/include/plaintext.php @@ -272,12 +272,13 @@ function shortenmsg($msg, $limit, $twitter = false) { $lines = explode("\n", $msg); $msg = ""; $recycle = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8'); + $ellipsis = html_entity_decode("…", ENT_QUOTES, 'UTF-8'); foreach ($lines AS $row=>$line) { if (iconv_strlen(trim($msg."\n".$line), "UTF-8") <= $limit) $msg = trim($msg."\n".$line); // Is the new message empty by now or is it a reshared message? elseif (($msg == "") OR (($row == 1) AND (substr($msg, 0, 4) == $recycle))) - $msg = iconv_substr(iconv_substr(trim($msg."\n".$line), 0, $limit, "UTF-8"), 0, -3, "UTF-8")."..."; + $msg = iconv_substr(iconv_substr(trim($msg."\n".$line), 0, $limit, "UTF-8"), 0, -3, "UTF-8").$ellipsis; else break; } diff --git a/include/poller.php b/include/poller.php index b0c594db15..3a83770ceb 100644 --- a/include/poller.php +++ b/include/poller.php @@ -156,6 +156,18 @@ function poller_execute($queue) { $stamp = (float)microtime(true); + if (get_config("system", "profiler")) { + $a->performance["start"] = microtime(true); + $a->performance["database"] = 0; + $a->performance["database_write"] = 0; + $a->performance["network"] = 0; + $a->performance["file"] = 0; + $a->performance["rendering"] = 0; + $a->performance["parser"] = 0; + $a->performance["marktime"] = 0; + $a->performance["markstart"] = microtime(true); + } + logger("Process ".$mypid." - Prio ".$queue["priority"]." - ID ".$queue["id"].": ".$funcname." ".$queue["parameter"]); // For better logging create a new process id for every worker call @@ -176,6 +188,19 @@ function poller_execute($queue) { logger("Process ".$mypid." - Prio ".$queue["priority"]." - ID ".$queue["id"].": ".$funcname." - done in ".$duration." seconds."); + if (get_config("system", "profiler")) { + $duration = microtime(true)-$a->performance["start"]; + + logger("ID ".$queue["id"].": ".$funcname.": ".sprintf("DB: %s/%s, Net: %s, I/O: %s, Other: %s, Total: %s", + round($a->performance["database"] - $a->performance["database_write"], 2), + round($a->performance["database_write"], 2), + round($a->performance["network"], 2), + round($a->performance["file"], 2), + round($duration - ($a->performance["database"] + $a->performance["network"] + $a->performance["file"]), 2), + round($duration, 2)), + LOGGER_DEBUG); + } + q("DELETE FROM `workerqueue` WHERE `id` = %d", intval($queue["id"])); } else { logger("Function ".$funcname." does not exist");