Skip to content

Instantly share code, notes, and snippets.

@loganlinn
Created December 17, 2013 18:35
Show Gist options
  • Save loganlinn/8010268 to your computer and use it in GitHub Desktop.
Save loganlinn/8010268 to your computer and use it in GitHub Desktop.
<?php
function gen_file_lines($filename) {
try {
$fp = fopen($filename, 'r');
while (($line = fgets($fp)) !== false) {
yield $line;
}
} finally {
if ($fp) {
fclose($fp);
}
}
}
////////////////////////////////////////////////////////////////////////////////
if (!isset($argv[1])) {
die("Usage: php " . basename(__FILE__) . " filename");
}
$startMem = memory_get_usage();
$time = microtime(true);
$numLines = 0;
foreach (gen_file_lines($argv[1]) as $line) {
$numLines++;
$fields = preg_split("/[\s,]+/", $line);
}
$time = microtime(true) - $time;
echo "Lines: $numLines\n";
echo "Time: " . $time * 1000 . " ms\n";
echo "Memory (start): " . ($startMem / 1024) . " kb\n";
echo "Memory (peak): " . (memory_get_peak_usage() / 1024) . " kb\n";
echo "Memory (end): " . (memory_get_usage() / 1024) . " kb\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment