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);
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);
$stepCount = $stepNbObjects + $offset;
$percentComplete = 100 * $stepCount / $nbObjects;
$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);
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);
$stepCount = $stepNbObjects + $offset;
$percentComplete = 100 * $stepCount / $nbObjects;
$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,
), $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;
}
}