Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimization and optional parallelization of typing minimization #2059

Merged
merged 1 commit into from
Mar 25, 2024

Conversation

jpstotz
Copy link
Contributor

@jpstotz jpstotz commented Mar 25, 2024

I have implemented the optimization outlined in this post #1053 (comment) 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.

results, this allows us to only check half of the matrix (tgs x tgs)
@StevenArzt StevenArzt merged commit c1aef28 into soot-oss:develop Mar 25, 2024
5 checks passed
@jpstotz jpstotz deleted the minimizeTypings2 branch May 24, 2024 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants