You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added a source filter to pre-process files to eliminate unnecessary scanning of exact replica of files.
A SourceFilter class was added which goal is to compare two source trees and filter out any duplicate source code files. It does so by hashing each file content and comparing the before and after hash sets. The intersection set is removed from the before and after list of files since there is no point to scan files with the exact same source code.
The benefits of this a important both in term of cpu usage and memory usage since we do not parse code that will in the end reveal itself not to have changed.
For example, here are the before and after of this change, comparing Symfony 2.5.9 with 2.6.3.
Before
[Symfony 2.5.9] 2936 php files in src
[Symfony 2.6.3] 3078 php files in src
2564 files are exactly the same
After
[Symfony 2.5.9] 367 scanned and parsed (12.5% of the original amount)
[Symfony 2.6.3] 509 scanned and parsed (16.5% of the original amount)
But most important of all, it can compare the whole source trees in a reasonable amount of time, something it couldn't before.
0 commit comments