From dd2d931e60124586e29b96d19b98b6b1b3ebd35b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Czo=C5=82nowski?= <marcin@czolnowski.net> Date: Wed, 3 Dec 2014 17:20:18 +0100 Subject: [PATCH] Add debug log which print amount of used memory. --- core/ArchiveProcessor/PluginsArchiver.php | 10 +++++++ core/Piwik.php | 33 +++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/core/ArchiveProcessor/PluginsArchiver.php b/core/ArchiveProcessor/PluginsArchiver.php index e0618f8343..c12a79a239 100644 --- a/core/ArchiveProcessor/PluginsArchiver.php +++ b/core/ArchiveProcessor/PluginsArchiver.php @@ -14,6 +14,7 @@ use Piwik\ArchiveProcessor; use Piwik\DataAccess\ArchiveWriter; use Piwik\DataTable\Manager; use Piwik\Metrics; +use Piwik\Piwik; use Piwik\Plugin\Archiver; use Piwik\Log; @@ -101,6 +102,7 @@ class PluginsArchiver } if ($this->shouldProcessReportsForPlugin($pluginName)) { + $memoryUsageBeforePluginArchiving = memory_get_usage(true); if ($this->isSingleSiteDayArchive) { Log::debug("PluginsArchiver::%s: Archiving day reports for plugin '%s'.", __FUNCTION__, $pluginName); @@ -110,6 +112,14 @@ class PluginsArchiver $archiver->aggregateMultipleReports(); } + + $memoryUsageInArchiving = memory_get_usage(true) - $memoryUsageBeforePluginArchiving; + Log::debug("PluginsArchiver::%s: Used %s memory while archiving %s reports for plugin '%s'.", + __FUNCTION__, + Piwik::bytesToSize($memoryUsageInArchiving), + $this->isSingleSiteDayArchive ? 'day' : 'period', + $pluginName + ); } else { Log::debug("PluginsArchiver::%s: Not archiving reports for plugin '%s'.", __FUNCTION__, $pluginName); } diff --git a/core/Piwik.php b/core/Piwik.php index 625a7cf9f8..829ac1ec6c 100644 --- a/core/Piwik.php +++ b/core/Piwik.php @@ -765,4 +765,37 @@ class Piwik return $result; } + + /** + * Convert bytes to human readable format + * + * @param int $bytes Size in bytes to convert + * @param int $precision Precision value, default 2. + * @return string + */ + public static function bytesToSize($bytes, $precision = 2) + { + $kilobyte = 1024; + $megabyte = $kilobyte * 1024; + $gigabyte = $megabyte * 1024; + $terabyte = $gigabyte * 1024; + + if (($bytes >= 0) && ($bytes < $kilobyte)) { + return $bytes . ' B'; + + } elseif (($bytes >= $kilobyte) && ($bytes < $megabyte)) { + return round($bytes / $kilobyte, $precision) . ' KB'; + + } elseif (($bytes >= $megabyte) && ($bytes < $gigabyte)) { + return round($bytes / $megabyte, $precision) . ' MB'; + + } elseif (($bytes >= $gigabyte) && ($bytes < $terabyte)) { + return round($bytes / $gigabyte, $precision) . ' GB'; + + } elseif ($bytes >= $terabyte) { + return round($bytes / $terabyte, $precision) . ' TB'; + } else { + return $bytes . ' B'; + } + } } -- GitLab