Skip to content

Do pretty printing for debug logging only when verbosity is high in incremental SMT2 decision procedure #6704

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

Merged

Conversation

thomasspriggs
Copy link
Contributor

This avoids wasting execution time in irept::pretty in the case where
verbosity is set to the default level. Before this performance fix, the
pretty printed output was generated and then discarded when the
verbosity was set to the default level.

Comparing this change against the develop branch, using a benchmark
has been shown to reduce the runtime from approximately 12 seconds to
approximately 3 seconds for that particular example.

  • Each commit message has a non-empty body, explaining why the change was made.
  • Methods or procedures I have added are documented, following the guidelines provided in CODING_STANDARD.md.
  • The feature or user visible behaviour I have added or modified has been documented in the User Guide in doc/cprover-manual/
  • Regression or unit tests are included, or existing tests cover the modified code (in this case I have detailed which ones those are in the commit message).
  • My commit message includes data points confirming performance improvements (if claimed).
  • My PR is restricted to a single feature or bugfix.
  • White-space or formatting changes outside the feature-related changed lines are in commits of their own.

This avoids wasting execution time in `irept::pretty` in the case where
verbosity is set to the default level. Before this performance fix, the
pretty printed output was generated and then discarded when the
verbosity was set to the default level.

Comparing this change against the `develop` branch, using a benchmark
has been shown to reduce the runtime from approximately 12 seconds to
approximately 3 seconds for that particular example.
@codecov
Copy link

codecov bot commented Mar 2, 2022

Codecov Report

Merging #6704 (2cad881) into develop (e244103) will increase coverage by 0.00%.
The diff coverage is 100.00%.

Impacted file tree graph

@@           Coverage Diff            @@
##           develop    #6704   +/-   ##
========================================
  Coverage    77.14%   77.15%           
========================================
  Files         1582     1582           
  Lines       182623   182628    +5     
========================================
+ Hits        140892   140900    +8     
+ Misses       41731    41728    -3     
Impacted Files Coverage Δ
src/goto-programs/goto_convert.cpp 92.33% <ø> (-0.01%) ⬇️
...ncremental/smt2_incremental_decision_procedure.cpp 94.01% <100.00%> (+0.22%) ⬆️
src/util/signal_catcher.cpp 96.15% <0.00%> (+11.53%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c1336e4...2cad881. Read the comment docs.

@thomasspriggs thomasspriggs merged commit 86284ae into diffblue:develop Mar 2, 2022
@thomasspriggs thomasspriggs deleted the tas/smt2_logging_performance branch March 2, 2022 16:06
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.

3 participants