Closed FangStars closed 1 year ago
We would like to fix performance regressions in the new solver, even though it is non-trivial. Learning from user benchmarks is one approach.
Thanks very much for your advice!
According to the experiment result, it seems like the efficiency reduction is caused by the arithmetic core. Since I am not familiar with the arithmetic-solving process, can you please indicate the reason behind it?
Thanks!
Thanks, at this point use smt.solver=2 for your application. We will use your file to tune the new arithmetic solver.
Recently I have been working on a project using version 4.8.5 of Z3, and I was hoping to improve efficiency by replacing it with the latest version of Z3 solver (4.12.2). However, after replacement, I was surprised that the efficiency decreased by half instead of increasing.
The statistics of both versions are shown below. I found that the number of "added-eqs" is exceptionally high in Z3-4.12.2; maybe this is the possible cause? Since I have not found an interpretation of the statistics, I need help understanding the reason behind this observation.
statistics of Z3-4.8.5
statistics of Z3-4.12.2
The project code is written in Java language, and tactics "simplify," "propagate-values," "solve-eqs," "bit-blast," and "smt" are used in order when creating a solver with function mkSolver(). I also have tried to create the solver without any tactics. However, the solving time of Z3-4.12.2 is still longer than Z3-4.8.5 (52 s vs 31 s).
I am surprised by this observation, and I want to understand the reasons behind it.
Thanks!