Skip to content

Commit 47936f2

Browse files
committed
Show LoC/s with -vvv --debug
1 parent 06c6da1 commit 47936f2

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

src/Command/AnalyseApplication.php

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
use Symfony\Component\Console\Input\InputInterface;
1818
use function array_merge;
1919
use function count;
20+
use function fclose;
21+
use function feof;
22+
use function fgets;
23+
use function fopen;
2024
use function hash_file;
2125
use function is_file;
2226
use function memory_get_peak_usage;
@@ -233,20 +237,33 @@ private function runAnalyser(
233237
$errorOutput->getStyle()->progressAdvance($allAnalysedFilesCount - $filesCount);
234238
} else {
235239
$startTime = null;
236-
$preFileCallback = static function (string $file) use ($stdOutput, &$startTime): void {
240+
$linesOfCode = null;
241+
$preFileCallback = static function (string $file) use ($stdOutput, &$startTime, &$linesOfCode): void {
237242
$stdOutput->writeLineFormatted($file);
238243
$startTime = microtime(true);
244+
$count = 0;
245+
$handle = @fopen($file, 'r');
246+
if ($handle === false) {
247+
return;
248+
}
249+
250+
while (!feof($handle)) {
251+
fgets($handle);
252+
$count++;
253+
}
254+
fclose($handle);
255+
$linesOfCode = $count;
239256
};
240257
$postFileCallback = null;
241258
if ($stdOutput->isDebug()) {
242259
$previousMemory = memory_get_peak_usage(true);
243-
$postFileCallback = static function () use ($stdOutput, &$previousMemory, &$startTime): void {
260+
$postFileCallback = static function () use ($stdOutput, &$previousMemory, &$startTime, &$linesOfCode): void {
244261
if ($startTime === null) {
245262
throw new ShouldNotHappenException();
246263
}
247264
$currentTotalMemory = memory_get_peak_usage(true);
248265
$elapsedTime = microtime(true) - $startTime;
249-
$stdOutput->writeLineFormatted(sprintf('--- consumed %s, total %s, took %.2f s', BytesHelper::bytes($currentTotalMemory - $previousMemory), BytesHelper::bytes($currentTotalMemory), $elapsedTime));
266+
$stdOutput->writeLineFormatted(sprintf('--- consumed %s, total %s, took %.2f s, %.3f LoC/s', BytesHelper::bytes($currentTotalMemory - $previousMemory), BytesHelper::bytes($currentTotalMemory), $elapsedTime, $linesOfCode / $elapsedTime));
250267
$previousMemory = $currentTotalMemory;
251268
};
252269
}

0 commit comments

Comments
 (0)