Speed up parsing of swift function times and parse swift whole modules #48
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Solves issues from #47
Speeds up parsing swift function times by using a better version of
String.substring
. With large texts (like the ones generated by Swiftc with the function times) the old one could take up to 9 secs. The new one takes a few milliseconds. It also uses parallel parsing of the texts. Using the Kickstarter iOS project, in my machine the parsing went from 220 secs to 8 secs.When a Swift module is compiled with the option
whole module
instead ofincremental
, the Log doesn't contain the information about the Swift files that were compiled in the module as sub steps. I'm parsing that information and adding it to the Json file, along with the warnings, errors and swift function times.Originally, the step got only one subStep:
With this change, I'm replacing that subStep and adding the array of Swift files that were compiled: