New method getMemoryUsage to get RAM information message

This commit is contained in:
Fabien Somnier 2014-02-03 18:12:20 +01:00
parent 0ae84d56c7
commit 48b785e876
3 changed files with 14 additions and 8 deletions

View file

@ -54,14 +54,11 @@ abstract class AbstractProvider extends BaseAbstractProvider
usleep($sleep); usleep($sleep);
if ($loggerClosure) { if ($loggerClosure) {
$memory = round(memory_get_usage() / (1024*1024),0); // to get usage in Mo
$memoryMax = round(memory_get_peak_usage() / (1024*1024)); // to get max usage in Mo
$message = '(RAM : current='.$memory.'Mo peak='.$memoryMax.'Mo)';
$stepNbObjects = count($objects); $stepNbObjects = count($objects);
$stepCount = $stepNbObjects + $offset; $stepCount = $stepNbObjects + $offset;
$percentComplete = 100 * $stepCount / $nbObjects; $percentComplete = 100 * $stepCount / $nbObjects;
$objectsPerSecond = $stepNbObjects / (microtime(true) - $stepStartTime); $objectsPerSecond = $stepNbObjects / (microtime(true) - $stepStartTime);
$loggerClosure(sprintf('%0.1f%% (%d/%d), %d objects/s %s', $percentComplete, $stepCount, $nbObjects, $objectsPerSecond, $message)); $loggerClosure(sprintf('%0.1f%% (%d/%d), %d objects/s %s', $percentComplete, $stepCount, $nbObjects, $objectsPerSecond, $this->getMemoryUsage()));
} }
} }
} }

View file

@ -37,14 +37,11 @@ class Provider extends AbstractProvider
usleep($sleep); usleep($sleep);
if ($loggerClosure) { if ($loggerClosure) {
$memory = round(memory_get_usage() / (1024*1024),0); // to get usage in Mo
$memoryMax = round(memory_get_peak_usage() / (1024*1024)); // to get usage in Mo
$message = '(RAM : current='.$memory.'Mo peak='.$memoryMax.'Mo)';
$stepNbObjects = count($objects); $stepNbObjects = count($objects);
$stepCount = $stepNbObjects + $offset; $stepCount = $stepNbObjects + $offset;
$percentComplete = 100 * $stepCount / $nbObjects; $percentComplete = 100 * $stepCount / $nbObjects;
$objectsPerSecond = $stepNbObjects / (microtime(true) - $stepStartTime); $objectsPerSecond = $stepNbObjects / (microtime(true) - $stepStartTime);
$loggerClosure(sprintf('%0.1f%% (%d/%d), %d objects/s %s', $percentComplete, $stepCount, $nbObjects, $objectsPerSecond, $message)); $loggerClosure(sprintf('%0.1f%% (%d/%d), %d objects/s %s', $percentComplete, $stepCount, $nbObjects, $objectsPerSecond, $this->getMemoryUsage()));
} }
} }
} }

View file

@ -26,4 +26,16 @@ abstract class AbstractProvider implements ProviderInterface
'batch_size' => 100, 'batch_size' => 100,
), $options); ), $options);
} }
/**
* Get string with RAM usage information (current and peak)
*
* @return string
*/
protected function getMemoryUsage() {
$memory = round(memory_get_usage() / (1024*1024),0); // to get usage in Mo
$memoryMax = round(memory_get_peak_usage() / (1024*1024)); // to get max usage in Mo
$message = '(RAM : current='.$memory.'Mo peak='.$memoryMax.'Mo)';
return $message;
}
} }