[x] Have you verified that there aren't any other open Pull Requests for the same update/change?
[x] Does the Pull Request pass all tests?
Description
When applying the metrics, only the distribution of block production is needed and not the entities. This PR changes the data that each metric function gets from a dictionary (of entities to number of blocks) to an ordered list of block amounts. This makes the metrics much faster. Also the ordering is applied only once at the analyzer level.
The variables that store the parsed and mapped data are very large. Before they were stored indefinitely in the execution loop of the main function, which resulted in a very high memory consumption (esp. when multiple ledgers were analyzed). By abstracting the processing to a separate function and storing the mapped data only when needed, the memory is released when not needed, reducing consumption.
All Submissions:
Description