Commit 2129de0
committed
Reduce memory usage during coverage merging by avoiding intermediate array
Instead of deserializing all coverage files into an array upfront and then iterating over them twice (once for validation, once for merging), process each file incrementally in a single pass. Test results are collected as a list of arrays and merged with array_merge(...$mergedTestResults) at the end.
This change removes the $items array that held all deserialized data simultaneously, reducing peak memory usage when merging many coverage files. It also eliminates the redundant second loop by combining validation and merging into one pass.1 parent 139c91b commit 2129de0
1 file changed
Lines changed: 9 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
| 44 | + | |
51 | 45 | | |
52 | 46 | | |
53 | 47 | | |
54 | 48 | | |
55 | 49 | | |
56 | | - | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
57 | 55 | | |
58 | 56 | | |
59 | 57 | | |
| |||
89 | 87 | | |
90 | 88 | | |
91 | 89 | | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | 90 | | |
97 | | - | |
98 | 91 | | |
99 | | - | |
| 92 | + | |
| 93 | + | |
100 | 94 | | |
101 | 95 | | |
102 | 96 | | |
| |||
116 | 110 | | |
117 | 111 | | |
118 | 112 | | |
119 | | - | |
| 113 | + | |
120 | 114 | | |
121 | 115 | | |
122 | 116 | | |
0 commit comments