Unfortunately, as the algorithm itself still has the complexity O(n2) certain large methods still can block method body generation for a long time.
A second implemented improvement allows to parallelize minimization. As multi-core system are common nowadays this can reduce the time necessary to perform typing minimization. Parallelization is in this PR enabled if there are more than 1000 Typing available.
In the end this is not a real solution but it can increase the number apps that can be analyzed within a certain time (e.g. 24 hours).
Unit tests has been adapted to cover both sequential and parallel implementation.
I have implemented the optimization outlined in this post https://github.com/soot-oss/soot/issues/1053#issuecomment-2012823796 that reduces the minimization time by 50%.
Unfortunately, as the algorithm itself still has the complexity O(n2) certain large methods still can block method body generation for a long time.
A second implemented improvement allows to parallelize minimization. As multi-core system are common nowadays this can reduce the time necessary to perform typing minimization. Parallelization is in this PR enabled if there are more than 1000 Typing available.
In the end this is not a real solution but it can increase the number apps that can be analyzed within a certain time (e.g. 24 hours).
Unit tests has been adapted to cover both sequential and parallel implementation.