-
-
Notifications
You must be signed in to change notification settings - Fork 396
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
WIP: make tests run faster #2277
Conversation
Codecov Report
@@ Coverage Diff @@
## master #2277 +/- ##
==========================================
+ Coverage 91.13% 91.26% +0.13%
==========================================
Files 42 42
Lines 4194 4234 +40
==========================================
+ Hits 3822 3864 +42
+ Misses 372 370 -2
Continue to review full report at Codecov.
|
- Make it so individual test files can be run - Time which tests take the most time - Currently, MutableArithmetics is the worst offender - Remove unneeded test entries in Project.toml
Benchmarks suggest a 40% reduction in runtime, but this is still almost all compile time. Runing Julia with -O0 gives another 30% reduction.
…tsets In addition, remove some tests. We don't need to test every type of file format, just the ability of JuMP to talk to MOI.FileFormats. This avoids having to compile the CBF, LP, and MPS modules just to read/write a single file.
…ted testsets In addition, disable JuMPExtension tests. They double our testing time without adding much in the way of extra coverage.
+1 for splitting this into smaller PRs |
Agreed. I was just trying to see the cumulative impact. Which is okay, but not overwhelming. |
Avoiding big testsets (like the ones enacpsulating the whole file as Line 2 in 1129e58
|
Looks like Pukeko.jl needed :D |
Closed by separate PRs. |
This PR is an attempt to make the JuMP tests run faster.
The first commit is a general tidying commit:
DualNumbers
in favor ofForwardDiff
runtests.jl
, or in an arbitrary orderThe next commits refactor the worst-performing files to speed them up.
In every case, the overwhelming majority of the time is spent compiling methods instead of doing work.
For example, running
test/operator.jl
(slightly modified to callTestOperator.runtests()
twice) on my machine yields:Yes, that is a 1200 fold difference in run time the second time round 😢.
Running it with
-O0
drops the time further.Current top-5 run times in seconds
Latest
master
build of Travis:Latest Travis build for this branch:
TODO before merging:
-O0
?