Skip to content

Commit 6e0238d

Browse files
authored
Report worker peak memory when the result cache is used (#6576)
1 parent d27106a commit 6e0238d

9 files changed

Lines changed: 57 additions & 0 deletions

File tree

‎.github/workflows/e2e-tests.yml‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,19 @@ jobs:
186186
OUTPUT=$(../../bin/phpstan -vvv 2>&1)
187187
echo "$OUTPUT"
188188
../bashunit -a contains 'Result cache restored.' "$OUTPUT"
189+
- script: |
190+
cd e2e/result-cache-worker-count
191+
OUTPUT=$(../../bin/phpstan -vvv 2>&1)
192+
echo "$OUTPUT"
193+
../bashunit -a contains 'largest of 2' "$OUTPUT"
194+
# Only some files are analysed again, so the result is rebuilt from the cache
195+
# and must still report the peak memory of the workers.
196+
echo '// changed' >> src/Foo.php
197+
echo '// changed' >> src/Bar.php
198+
OUTPUT=$(../../bin/phpstan -vvv 2>&1)
199+
echo "$OUTPUT"
200+
../bashunit -a contains 'Result cache restored. 2 files will be reanalysed.' "$OUTPUT"
201+
../bashunit -a contains 'largest of 2' "$OUTPUT"
189202
- script: |
190203
cd e2e/result-cache-stale-objects
191204
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan -vvv")

‎.gitignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,4 @@ e2e/bashunit
2222
/e2e/result-cache-moved-tmpdir/tmp-b
2323
/e2e/result-cache-stale-objects/tmp
2424
/e2e/result-cache-truncated/tmp
25+
/e2e/result-cache-worker-count/tmp
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
parameters:
2+
level: 0
3+
tmpDir: tmp
4+
paths:
5+
- src
6+
parallel:
7+
jobSize: 1
8+
maximumNumberOfProcesses: 2
9+
minimumNumberOfJobsPerProcess: 1
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace TestResultCacheWorkerCount;
4+
5+
class Bar
6+
{
7+
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace TestResultCacheWorkerCount;
4+
5+
class Baz
6+
{
7+
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace TestResultCacheWorkerCount;
4+
5+
class Foo
6+
{
7+
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace TestResultCacheWorkerCount;
4+
5+
class Qux
6+
{
7+
8+
}

‎src/Analyser/ResultCache/ResultCacheManager.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,7 @@ public function process(AnalyserResult $analyserResult, ResultCache $resultCache
12111211
reachedInternalErrorsCountLimit: $analyserResult->hasReachedInternalErrorsCountLimit(),
12121212
peakMemoryUsageBytes: $analyserResult->getPeakMemoryUsageBytes(),
12131213
processedFiles: $analyserResult->getProcessedFiles(),
1214+
workerCount: $analyserResult->getWorkerCount(),
12141215
), $saved);
12151216
}
12161217

‎src/Command/AnalyseApplication.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,7 @@ private function switchTmpFileInAnalyserResult(
344344
reachedInternalErrorsCountLimit: $analyserResult->hasReachedInternalErrorsCountLimit(),
345345
peakMemoryUsageBytes: $analyserResult->getPeakMemoryUsageBytes(),
346346
processedFiles: $analyserResult->getProcessedFiles(),
347+
workerCount: $analyserResult->getWorkerCount(),
347348
);
348349
}
349350

0 commit comments

Comments
 (0)