SymbolicML / DynamicExpressions.jl

Ridiculously fast symbolic expressions
https://symbolicml.org/DynamicExpressions.jl/dev
Apache License 2.0
92 stars 12 forks source link

Migrate from SnoopPrecompile to PrecompileTools #26

Closed timholy closed 1 year ago

timholy commented 1 year ago

This pull request migrates the package from SnoopPrecompile to PrecompileTools. PrecompileTools is nearly a drop-in replacement except that there are changes in naming and how developers locally disable precompilation (to make their development workflow more efficient). These changes are described in PrecompileTool's enhanced documentation, which also includes instructions for users on how to set up custom "Startup" packages, handling precompilation tasks that are not amenable to workloads, and tips for troubleshooting.

Why the new package? It meets several goals:

For more information and discussion, see this discourse post.

github-actions[bot] commented 1 year ago

Benchmark Results

master 05c386fd4f0745... t[master]/t[05c386fd4f0745...]
OperatorEnum/ComplexF32/evaluation 0.0424 ± 0.0049 ms 0.0398 ± 0.0075 ms 1.07
OperatorEnum/ComplexF64/evaluation 0.0429 ± 0.0054 ms 0.0442 ± 0.0043 ms 0.971
OperatorEnum/Float32/derivative 0.159 ± 0.01 ms 0.157 ± 0.011 ms 1.01
OperatorEnum/Float32/derivative_turbo 0.192 ± 0.023 ms 0.19 ± 0.024 ms 1.01
OperatorEnum/Float32/evaluation 9.16 ± 0.94 μs 9.08 ± 0.54 μs 1.01
OperatorEnum/Float32/evaluation_turbo 8.04 ± 1.1 μs 7.98 ± 0.93 μs 1.01
OperatorEnum/Float64/derivative 0.234 ± 0.011 ms 0.233 ± 0.013 ms 1
OperatorEnum/Float64/derivative_turbo 0.261 ± 0.031 ms 0.264 ± 0.031 ms 0.991
OperatorEnum/Float64/evaluation 13.9 ± 1.2 μs 13.3 ± 1.4 μs 1.05
OperatorEnum/Float64/evaluation_turbo 12.8 ± 1.5 μs 12.9 ± 1.3 μs 0.992
time_to_load 14.4 ± 0.18 s 14.4 ± 0.24 s 0.997

Benchmark Plots

A plot of the benchmark results have been uploaded as an artifact to the workflow run for this PR. Go to "Actions"->"Benchmark a pull request"->[the most recent run]->"Artifacts" (at the bottom).

coveralls commented 1 year ago

Pull Request Test Coverage Report for Build 4810139480


Changes Missing Coverage Covered Lines Changed/Added Lines %
src/precompile.jl 1 3 33.33%
<!-- Total: 1 3 33.33% -->
Files with Coverage Reduction New Missed Lines %
src/EvaluateEquation.jl 1 99.62%
<!-- Total: 1 -->
Totals Coverage Status
Change from base Build 4774460028: -0.3%
Covered Lines: 934
Relevant Lines: 1047

💛 - Coveralls