Skip to content

refactor: use OrderedDict/OrderedSet over Dict/Set#946

Open
AayushSabharwal wants to merge 1 commit into
masterfrom
as/ordereddict
Open

refactor: use OrderedDict/OrderedSet over Dict/Set#946
AayushSabharwal wants to merge 1 commit into
masterfrom
as/ordereddict

Conversation

@AayushSabharwal
Copy link
Copy Markdown
Member

As part of an attempt to make things less dependent on hash-ordering

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

Benchmark Results (Julia v1)

Time benchmarks
master 3ccfc14... master / 3ccfc14...
arithmetic/2-arg mul 9.28 ± 0.29 μs 9.51 ± 0.31 μs 0.976 ± 0.044
arithmetic/addition 0.0554 ± 0.0045 ms 0.0595 ± 0.001 ms 0.93 ± 0.078
arithmetic/division 21.1 ± 5.6 μs 21.9 ± 0.57 μs 0.962 ± 0.25
arithmetic/multiplication 0.0349 ± 0.0051 ms 0.0453 ± 0.0021 ms 0.772 ± 0.12
codegen/arrayop_nested/fast_toexpr 8.38 ± 0.63 μs 8.93 ± 0.69 μs 0.938 ± 0.1
codegen/arrayop_nested/toexpr 0.0495 ± 0.0019 ms 0.0516 ± 0.022 ms 0.959 ± 0.42
codegen/deep_poly/deg=10:fast_toexpr 0.0684 ± 0.011 ms 0.0717 ± 0.02 ms 0.954 ± 0.31
codegen/deep_poly/deg=10:toexpr 0.0742 ± 0.026 ms 0.0733 ± 0.023 ms 1.01 ± 0.48
codegen/deep_poly/deg=14:fast_toexpr 0.151 ± 0.068 ms 0.139 ± 0.037 ms 1.09 ± 0.57
codegen/deep_poly/deg=14:toexpr 0.137 ± 0.046 ms 0.136 ± 0.046 ms 1.01 ± 0.48
codegen/deep_poly/deg=6:fast_toexpr 31.5 ± 3.6 μs 0.0324 ± 0.0057 ms 0.971 ± 0.2
codegen/deep_poly/deg=6:toexpr 31.4 ± 1.8 μs 0.0318 ± 0.0026 ms 0.986 ± 0.098
codegen/makearray/n=100:fast_toexpr 0.118 ± 0.045 ms 0.108 ± 0.044 ms 1.09 ± 0.6
codegen/makearray/n=100:toexpr 0.525 ± 0.094 ms 0.547 ± 0.086 ms 0.96 ± 0.23
codegen/makearray/n=200:fast_toexpr 0.175 ± 0.066 ms 0.164 ± 0.069 ms 1.06 ± 0.6
codegen/makearray/n=200:toexpr 0.914 ± 0.15 ms 0.955 ± 0.15 ms 0.957 ± 0.22
codegen/makearray/n=400:fast_toexpr 0.328 ± 0.12 ms 0.32 ± 0.051 ms 1.03 ± 0.41
codegen/makearray/n=400:toexpr 1.54 ± 0.26 ms 1.57 ± 0.23 ms 0.977 ± 0.22
codegen/wide_deep_poly/fast_toexpr 0.613 ± 0.075 ms 0.61 ± 0.056 ms 1.01 ± 0.15
codegen/wide_deep_poly/toexpr 0.496 ± 0.16 ms 0.493 ± 0.026 ms 1.01 ± 0.32
codegen/wide_poly/n=100:fast_toexpr 0.212 ± 0.034 ms 0.283 ± 0.078 ms 0.749 ± 0.24
codegen/wide_poly/n=100:toexpr 0.285 ± 0.082 ms 0.517 ± 0.1 ms 0.552 ± 0.19
codegen/wide_poly/n=25:fast_toexpr 0.047 ± 0.018 ms 0.0655 ± 0.029 ms 0.717 ± 0.42
codegen/wide_poly/n=25:toexpr 0.0723 ± 0.022 ms 0.129 ± 0.025 ms 0.56 ± 0.2
codegen/wide_poly/n=50:fast_toexpr 0.106 ± 0.025 ms 0.134 ± 0.057 ms 0.795 ± 0.39
codegen/wide_poly/n=50:toexpr 0.149 ± 0.043 ms 0.175 ± 0.054 ms 0.851 ± 0.36
irstructure/search_variables/common:IRStructure 0.223 ± 0.0081 ms 0.226 ± 0.0079 ms 0.984 ± 0.049
irstructure/search_variables/common:reference 0.686 ± 0.013 ms 0.699 ± 0.014 ms 0.981 ± 0.028
irstructure/search_variables/dissimilar:IRStructure 0.0557 ± 0.0013 ms 0.0563 ± 0.001 ms 0.989 ± 0.029
irstructure/search_variables/dissimilar:reference 0.201 ± 0.012 ms 0.2 ± 0.015 ms 1 ± 0.097
irstructure/subset_ir/large 2.08 ± 0.13 ms 2.05 ± 0.082 ms 1.01 ± 0.077
irstructure/subset_ir/small 0.112 ± 0.015 ms 0.113 ± 0.012 ms 0.983 ± 0.16
irstructure/substitute/IRSubstituter 8.05 ± 0.2 ms 7.57 ± 0.15 ms 1.06 ± 0.034
irstructure/substitute/reference 8.34 ± 0.39 ms 7.84 ± 0.27 ms 1.06 ± 0.062
irstructure/substitute/sparse IRSubstituter 1.35 ± 0.059 ms 1.3 ± 0.034 ms 1.04 ± 0.053
irstructure/substitute/sparse reference 1.75 ± 0.12 ms 1.7 ± 0.039 ms 1.03 ± 0.073
overhead/acrule/a+2 2.46 ± 0.13 μs 2.47 ± 0.13 μs 0.996 ± 0.075
overhead/acrule/a+2+b 0.08 ± 0.01 μs 0.08 ± 0.01 μs 1 ± 0.18
overhead/acrule/a+b 4.26 ± 0.23 μs 6.55 ± 0.74 μs 0.65 ± 0.082
overhead/acrule/noop:Int 30 ± 0 ns 30 ± 0 ns 1 ± 0
overhead/acrule/noop:Sym 0.06 ± 0 μs 0.06 ± 0 μs 1 ± 0
overhead/get_degrees/large_poly 0.071 ± 0.01 μs 0.09 ± 0 μs 0.789 ± 0.11
overhead/rule/noop:Int 0.07 ± 0 μs 0.07 ± 0 μs 1 ± 0
overhead/rule/noop:Sym 0.07 ± 0.01 μs 0.07 ± 0.01 μs 1 ± 0.2
overhead/rule/noop:Term 0.07 ± 0.01 μs 0.07 ± 0.01 μs 1 ± 0.2
overhead/ruleset/noop:Int 30 ± 0 ns 30 ± 0 ns 1 ± 0
overhead/ruleset/noop:Sym 0.271 ± 0.01 μs 0.281 ± 0.03 μs 0.964 ± 0.11
overhead/ruleset/noop:Term 1.14 ± 0.03 μs 1.16 ± 0.04 μs 0.984 ± 0.043
overhead/simplify/noop:Int 30 ± 0 ns 30 ± 0 ns 1 ± 0
overhead/simplify/noop:Sym 0.04 ± 0.01 μs 0.04 ± 0.01 μs 1 ± 0.35
overhead/simplify/noop:Term 28 ± 0.84 μs 28.4 ± 6.7 μs 0.987 ± 0.24
overhead/simplify/randterm (+, *):serial 0.297 ± 0.024 s 0.314 ± 0.024 s 0.945 ± 0.11
overhead/simplify/randterm (+, *):thread 0.356 ± 0.17 s 0.388 ± 0.039 s 0.917 ± 0.45
overhead/simplify/randterm (/, *):serial 0.172 ± 0.03 ms 0.182 ± 0.047 ms 0.947 ± 0.29
overhead/simplify/randterm (/, *):thread 0.183 ± 0.025 ms 0.192 ± 0.047 ms 0.949 ± 0.27
overhead/substitute/a 29 ± 0.79 μs 29.7 ± 10 μs 0.977 ± 0.34
overhead/substitute/a,b 0.0358 ± 0.00094 ms 0.036 ± 0.0019 ms 0.994 ± 0.057
overhead/substitute/a,b,c 0.0348 ± 0.00095 ms 0.035 ± 0.0016 ms 0.993 ± 0.052
polyform/easy_iszero 15.6 ± 0.72 μs 15.3 ± 0.43 μs 1.02 ± 0.055
polyform/isone 0.85 ± 0.025 ms 0.87 ± 0.26 ms 0.978 ± 0.29
polyform/isone:noop 0.08 ± 0 μs 0.08 ± 0.01 μs 1 ± 0.12
polyform/iszero 0.723 ± 0.022 ms 0.752 ± 0.24 ms 0.962 ± 0.31
polyform/iszero:noop 0.08 ± 0 μs 0.08 ± 0 μs 1 ± 0
polyform/simplify_fractions 0.915 ± 0.026 ms 0.919 ± 0.024 ms 0.996 ± 0.038
printing/large_poly 0.231 ± 0.025 s 0.255 ± 0.043 s 0.906 ± 0.18
time_to_load 1.41 ± 0.0048 s 1.58 ± 0.037 s 0.894 ± 0.021
Memory benchmarks
master 3ccfc14... master / 3ccfc14...
arithmetic/2-arg mul 0.06 k allocs: 1.84 kB 0.064 k allocs: 1.97 kB 0.937
arithmetic/addition 0.251 k allocs: 7.75 kB 0.252 k allocs: 7.78 kB 0.996
arithmetic/division 0.134 k allocs: 4.8 kB 0.153 k allocs: 5.22 kB 0.919
arithmetic/multiplication 0.254 k allocs: 6.53 kB 0.26 k allocs: 6.8 kB 0.961
codegen/arrayop_nested/fast_toexpr 0.203 k allocs: 9.53 kB 0.208 k allocs: 9.53 kB 1
codegen/arrayop_nested/toexpr 0.524 k allocs: 19.7 kB 0.529 k allocs: 19.7 kB 1
codegen/deep_poly/deg=10:fast_toexpr 1.25 k allocs: 0.0565 MB 1.25 k allocs: 0.0565 MB 1
codegen/deep_poly/deg=10:toexpr 1.41 k allocs: 0.0488 MB 1.41 k allocs: 0.0488 MB 1
codegen/deep_poly/deg=14:fast_toexpr 2.22 k allocs: 0.12 MB 2.22 k allocs: 0.12 MB 1
codegen/deep_poly/deg=14:toexpr 2.55 k allocs: 0.0908 MB 2.55 k allocs: 0.0908 MB 1
codegen/deep_poly/deg=6:fast_toexpr 0.561 k allocs: 28.9 kB 0.561 k allocs: 28.9 kB 1
codegen/deep_poly/deg=6:toexpr 0.601 k allocs: 22.2 kB 0.601 k allocs: 22.2 kB 1
codegen/makearray/n=100:fast_toexpr 1.98 k allocs: 0.0835 MB 1.99 k allocs: 0.0819 MB 1.02
codegen/makearray/n=100:toexpr 4.86 k allocs: 0.169 MB 4.89 k allocs: 0.166 MB 1.02
codegen/makearray/n=200:fast_toexpr 3.22 k allocs: 0.135 MB 3.25 k allocs: 0.132 MB 1.03
codegen/makearray/n=200:toexpr 8.39 k allocs: 0.291 MB 8.43 k allocs: 0.286 MB 1.01
codegen/makearray/n=400:fast_toexpr 6.34 k allocs: 0.268 MB 6.42 k allocs: 0.259 MB 1.04
codegen/makearray/n=400:toexpr 13.9 k allocs: 0.473 MB 13.9 k allocs: 0.467 MB 1.01
codegen/wide_deep_poly/fast_toexpr 7.43 k allocs: 0.352 MB 7.43 k allocs: 0.352 MB 1
codegen/wide_deep_poly/toexpr 9.37 k allocs: 0.327 MB 9.37 k allocs: 0.327 MB 1
codegen/wide_poly/n=100:fast_toexpr 3.5 k allocs: 0.155 MB 3.5 k allocs: 0.155 MB 1
codegen/wide_poly/n=100:toexpr 4.92 k allocs: 0.166 MB 4.92 k allocs: 0.166 MB 1
codegen/wide_poly/n=25:fast_toexpr 0.911 k allocs: 0.0388 MB 0.911 k allocs: 0.0388 MB 1
codegen/wide_poly/n=25:toexpr 1.24 k allocs: 0.0421 MB 1.24 k allocs: 0.0421 MB 1
codegen/wide_poly/n=50:fast_toexpr 1.78 k allocs: 0.0928 MB 1.78 k allocs: 0.0928 MB 1
codegen/wide_poly/n=50:toexpr 2.47 k allocs: 0.0862 MB 2.47 k allocs: 0.0862 MB 1
irstructure/search_variables/common:IRStructure 0.06 k allocs: 4.53 kB 0.06 k allocs: 4.53 kB 1
irstructure/search_variables/common:reference 0.26 k allocs: 0.23 MB 0.26 k allocs: 0.23 MB 1
irstructure/search_variables/dissimilar:IRStructure 0.046 k allocs: 3.31 kB 0.044 k allocs: 3.28 kB 1.01
irstructure/search_variables/dissimilar:reference 0.154 k allocs: 0.0483 MB 0.154 k allocs: 0.0483 MB 1
irstructure/subset_ir/large 0.0369 M allocs: 1.61 MB 0.0369 M allocs: 1.61 MB 1
irstructure/subset_ir/small 2.66 k allocs: 0.155 MB 2.66 k allocs: 0.155 MB 1
irstructure/substitute/IRSubstituter 31.2 k allocs: 1.01 MB 0.0324 M allocs: 1.04 MB 0.966
irstructure/substitute/reference 0.0338 M allocs: 1.17 MB 0.035 M allocs: 1.21 MB 0.971
irstructure/substitute/sparse IRSubstituter 3.63 k allocs: 0.118 MB 3.77 k allocs: 0.123 MB 0.964
irstructure/substitute/sparse reference 6.3 k allocs: 0.286 MB 6.45 k allocs: 0.29 MB 0.985
overhead/acrule/a+2 0.032 k allocs: 1.12 kB 0.032 k allocs: 1.12 kB 1
overhead/acrule/a+2+b 0 allocs: 0 B 0 allocs: 0 B
overhead/acrule/a+b 0.042 k allocs: 1.55 kB 0.042 k allocs: 1.55 kB 1
overhead/acrule/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/acrule/noop:Sym 0 allocs: 0 B 0 allocs: 0 B
overhead/get_degrees/large_poly 2 allocs: 32 B 2 allocs: 32 B 1
overhead/rule/noop:Int 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/rule/noop:Sym 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/rule/noop:Term 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/ruleset/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/ruleset/noop:Sym 3 allocs: 0.109 kB 3 allocs: 0.109 kB 1
overhead/ruleset/noop:Term 12 allocs: 0.391 kB 12 allocs: 0.391 kB 1
overhead/simplify/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/simplify/noop:Sym 0 allocs: 0 B 0 allocs: 0 B
overhead/simplify/noop:Term 0.268 k allocs: 9.91 kB 0.268 k allocs: 9.91 kB 1
overhead/simplify/randterm (+, *):serial 2.28 M allocs: 0.0846 GB 2.28 M allocs: 0.0848 GB 0.999
overhead/simplify/randterm (+, *):thread 2.44 M allocs: 0.247 GB 2.45 M allocs: 0.249 GB 0.991
overhead/simplify/randterm (/, *):serial 1.84 k allocs: 0.0655 MB 1.84 k allocs: 0.0655 MB 1
overhead/simplify/randterm (/, *):thread 1.98 k allocs: 0.0704 MB 1.98 k allocs: 0.0704 MB 1
overhead/substitute/a 0.164 k allocs: 5.69 kB 0.171 k allocs: 5.91 kB 0.963
overhead/substitute/a,b 0.211 k allocs: 7.22 kB 0.219 k allocs: 7.47 kB 0.967
overhead/substitute/a,b,c 0.215 k allocs: 7.31 kB 0.223 k allocs: 7.56 kB 0.967
polyform/easy_iszero 0.093 k allocs: 2.91 kB 0.101 k allocs: 3.17 kB 0.916
polyform/isone 11.1 k allocs: 0.57 MB 11.2 k allocs: 0.585 MB 0.975
polyform/isone:noop 1 allocs: 16 B 1 allocs: 16 B 1
polyform/iszero 9.21 k allocs: 0.474 MB 9.26 k allocs: 0.488 MB 0.97
polyform/iszero:noop 1 allocs: 16 B 1 allocs: 16 B 1
polyform/simplify_fractions 11.6 k allocs: 0.588 MB 11.7 k allocs: 0.604 MB 0.975
printing/large_poly 2.15 M allocs: 0.079 GB 2.15 M allocs: 0.079 GB 1
time_to_load 0.145 k allocs: 11 kB 0.145 k allocs: 11 kB 1

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

Benchmark Results (Julia vlts)

Time benchmarks
master 3ccfc14... master / 3ccfc14...
arithmetic/2-arg mul 8.45 ± 0.31 μs 8.73 ± 0.4 μs 0.968 ± 0.057
arithmetic/addition 0.0523 ± 0.0026 ms 0.0603 ± 0.0018 ms 0.868 ± 0.05
arithmetic/division 17.3 ± 0.55 μs 18.4 ± 0.59 μs 0.938 ± 0.042
arithmetic/multiplication 29.8 ± 2.2 μs 0.033 ± 0.00085 ms 0.903 ± 0.07
codegen/arrayop_nested/fast_toexpr 8.21 ± 1.1 μs 8.42 ± 1.1 μs 0.975 ± 0.18
codegen/arrayop_nested/toexpr 0.0424 ± 0.0023 ms 0.043 ± 0.0022 ms 0.986 ± 0.073
codegen/deep_poly/deg=10:fast_toexpr 0.06 ± 0.0048 ms 0.0609 ± 0.0057 ms 0.986 ± 0.12
codegen/deep_poly/deg=10:toexpr 0.0587 ± 0.0032 ms 0.0586 ± 0.0028 ms 1 ± 0.072
codegen/deep_poly/deg=14:fast_toexpr 0.112 ± 0.01 ms 0.11 ± 0.0097 ms 1.02 ± 0.13
codegen/deep_poly/deg=14:toexpr 0.105 ± 0.0084 ms 0.105 ± 0.0064 ms 1 ± 0.1
codegen/deep_poly/deg=6:fast_toexpr 27.6 ± 2.9 μs 27.7 ± 2.9 μs 0.996 ± 0.15
codegen/deep_poly/deg=6:toexpr 25.6 ± 3.1 μs 26.2 ± 3.1 μs 0.977 ± 0.17
codegen/makearray/n=100:fast_toexpr 0.0656 ± 0.0064 ms 0.0664 ± 0.0057 ms 0.988 ± 0.13
codegen/makearray/n=100:toexpr 0.431 ± 0.017 ms 0.434 ± 0.018 ms 0.994 ± 0.057
codegen/makearray/n=200:fast_toexpr 0.112 ± 0.01 ms 0.112 ± 0.01 ms 0.999 ± 0.13
codegen/makearray/n=200:toexpr 0.62 ± 0.022 ms 0.627 ± 0.021 ms 0.99 ± 0.049
codegen/makearray/n=400:fast_toexpr 0.216 ± 0.018 ms 0.217 ± 0.017 ms 0.996 ± 0.12
codegen/makearray/n=400:toexpr 1.01 ± 0.033 ms 1.01 ± 0.034 ms 0.996 ± 0.046
codegen/wide_deep_poly/fast_toexpr 0.449 ± 0.028 ms 0.457 ± 0.027 ms 0.982 ± 0.085
codegen/wide_deep_poly/toexpr 0.378 ± 0.022 ms 0.385 ± 0.019 ms 0.983 ± 0.074
codegen/wide_poly/n=100:fast_toexpr 0.202 ± 0.02 ms 0.194 ± 0.019 ms 1.04 ± 0.14
codegen/wide_poly/n=100:toexpr 0.226 ± 0.016 ms 0.235 ± 0.014 ms 0.961 ± 0.089
codegen/wide_poly/n=25:fast_toexpr 0.0427 ± 0.0036 ms 0.0427 ± 0.0041 ms 1 ± 0.13
codegen/wide_poly/n=25:toexpr 0.0558 ± 0.0045 ms 0.0579 ± 0.0034 ms 0.963 ± 0.096
codegen/wide_poly/n=50:fast_toexpr 0.0888 ± 0.0095 ms 0.0876 ± 0.009 ms 1.01 ± 0.15
codegen/wide_poly/n=50:toexpr 0.112 ± 0.0093 ms 0.116 ± 0.0083 ms 0.963 ± 0.11
irstructure/search_variables/common:IRStructure 0.19 ± 0.0035 ms 0.205 ± 0.0044 ms 0.926 ± 0.026
irstructure/search_variables/common:reference 0.4 ± 0.012 ms 0.342 ± 0.09 ms 1.17 ± 0.31
irstructure/search_variables/dissimilar:IRStructure 0.0469 ± 0.0021 ms 0.0475 ± 0.0023 ms 0.987 ± 0.066
irstructure/search_variables/dissimilar:reference 0.106 ± 0.0044 ms 0.104 ± 0.033 ms 1.02 ± 0.33
irstructure/subset_ir/large 2.45 ± 0.074 ms 2.52 ± 0.054 ms 0.973 ± 0.036
irstructure/subset_ir/small 0.219 ± 0.0091 ms 0.218 ± 0.0096 ms 1.01 ± 0.061
irstructure/substitute/IRSubstituter 6.32 ± 0.1 ms 6.49 ± 0.091 ms 0.975 ± 0.021
irstructure/substitute/reference 6.82 ± 0.091 ms 6.94 ± 0.1 ms 0.983 ± 0.019
irstructure/substitute/sparse IRSubstituter 1.07 ± 0.022 ms 1.11 ± 0.023 ms 0.967 ± 0.029
irstructure/substitute/sparse reference 1.6 ± 0.031 ms 1.63 ± 0.028 ms 0.986 ± 0.025
overhead/acrule/a+2 2.03 ± 0.11 μs 2.03 ± 0.11 μs 1 ± 0.076
overhead/acrule/a+2+b 0.05 ± 0 μs 0.05 ± 0 μs 1 ± 0
overhead/acrule/a+b 3.7 ± 0.41 μs 3.71 ± 0.34 μs 0.995 ± 0.14
overhead/acrule/noop:Int 0.04 ± 0 μs 0.04 ± 0 μs 1 ± 0
overhead/acrule/noop:Sym 0.04 ± 0 μs 0.04 ± 0.01 μs 1 ± 0.25
overhead/get_degrees/large_poly 0.06 ± 0.01 μs 0.06 ± 0.001 μs 1 ± 0.17
overhead/rule/noop:Int 0.05 ± 0 μs 0.05 ± 0 μs 1 ± 0
overhead/rule/noop:Sym 0.05 ± 0 μs 0.05 ± 0 μs 1 ± 0
overhead/rule/noop:Term 0.05 ± 0 μs 0.05 ± 0 μs 1 ± 0
overhead/ruleset/noop:Int 20 ± 10 ns 20 ± 10 ns 1 ± 0.71
overhead/ruleset/noop:Sym 0.2 ± 0.001 μs 0.191 ± 0.01 μs 1.05 ± 0.055
overhead/ruleset/noop:Term 0.871 ± 0.02 μs 0.851 ± 0.021 μs 1.02 ± 0.034
overhead/simplify/noop:Int 20 ± 10 ns 20 ± 10 ns 1 ± 0.71
overhead/simplify/noop:Sym 30 ± 10 ns 30 ± 10 ns 1 ± 0.47
overhead/simplify/noop:Term 23.9 ± 1.5 μs 24 ± 1.4 μs 0.997 ± 0.084
overhead/simplify/randterm (+, *):serial 0.24 ± 0.0083 s 0.237 ± 0.013 s 1.01 ± 0.065
overhead/simplify/randterm (+, *):thread 0.277 ± 0.0084 s 0.273 ± 0.0099 s 1.01 ± 0.048
overhead/simplify/randterm (/, *):serial 0.142 ± 0.011 ms 0.139 ± 0.009 ms 1.02 ± 0.1
overhead/simplify/randterm (/, *):thread 0.144 ± 0.01 ms 0.141 ± 0.0085 ms 1.02 ± 0.095
overhead/substitute/a 25.8 ± 0.87 μs 26.6 ± 0.67 μs 0.971 ± 0.041
overhead/substitute/a,b 31.3 ± 0.84 μs 0.0322 ± 0.0008 ms 0.974 ± 0.036
overhead/substitute/a,b,c 29.7 ± 0.73 μs 30.6 ± 0.74 μs 0.971 ± 0.034
polyform/easy_iszero 14 ± 0.41 μs 15 ± 0.5 μs 0.935 ± 0.041
polyform/isone 0.769 ± 0.041 ms 0.782 ± 0.028 ms 0.983 ± 0.062
polyform/isone:noop 0.06 ± 0.001 μs 0.06 ± 0.01 μs 1 ± 0.17
polyform/iszero 0.642 ± 0.033 ms 0.649 ± 0.022 ms 0.989 ± 0.061
polyform/iszero:noop 0.06 ± 0.01 μs 0.06 ± 0.01 μs 1 ± 0.24
polyform/simplify_fractions 0.824 ± 0.04 ms 0.829 ± 0.029 ms 0.994 ± 0.059
printing/large_poly 0.188 ± 0.0043 s 0.188 ± 0.0048 s 0.999 ± 0.034
time_to_load 1.11 ± 0.0031 s 1.13 ± 0.024 s 0.98 ± 0.021
Memory benchmarks
master 3ccfc14... master / 3ccfc14...
arithmetic/2-arg mul 0.067 k allocs: 2.3 kB 0.085 k allocs: 2.77 kB 0.831
arithmetic/addition 0.251 k allocs: 8.08 kB 0.494 k allocs: 12.6 kB 0.64
arithmetic/division 0.13 k allocs: 5.03 kB 0.178 k allocs: 6.08 kB 0.828
arithmetic/multiplication 0.254 k allocs: 7 kB 0.287 k allocs: 7.77 kB 0.901
codegen/arrayop_nested/fast_toexpr 0.189 k allocs: 11.2 kB 0.191 k allocs: 11 kB 1.02
codegen/arrayop_nested/toexpr 0.473 k allocs: 20.5 kB 0.475 k allocs: 20.3 kB 1.01
codegen/deep_poly/deg=10:fast_toexpr 0.975 k allocs: 0.0564 MB 0.975 k allocs: 0.0564 MB 1
codegen/deep_poly/deg=10:toexpr 1.05 k allocs: 0.0497 MB 1.05 k allocs: 0.0497 MB 1
codegen/deep_poly/deg=14:fast_toexpr 1.71 k allocs: 0.117 MB 1.71 k allocs: 0.117 MB 1
codegen/deep_poly/deg=14:toexpr 1.89 k allocs: 0.093 MB 1.89 k allocs: 0.093 MB 1
codegen/deep_poly/deg=6:fast_toexpr 0.447 k allocs: 31.4 kB 0.447 k allocs: 31.4 kB 1
codegen/deep_poly/deg=6:toexpr 0.449 k allocs: 22.9 kB 0.449 k allocs: 22.9 kB 1
codegen/makearray/n=100:fast_toexpr 1.35 k allocs: 0.0703 MB 1.36 k allocs: 0.0694 MB 1.01
codegen/makearray/n=100:toexpr 4.43 k allocs: 0.173 MB 4.45 k allocs: 0.172 MB 1.01
codegen/makearray/n=200:fast_toexpr 2.38 k allocs: 0.118 MB 2.4 k allocs: 0.117 MB 1.01
codegen/makearray/n=200:toexpr 6.36 k allocs: 0.246 MB 6.38 k allocs: 0.243 MB 1.01
codegen/makearray/n=400:fast_toexpr 4.25 k allocs: 0.214 MB 4.29 k allocs: 0.211 MB 1.02
codegen/makearray/n=400:toexpr 10.2 k allocs: 0.392 MB 10.2 k allocs: 0.388 MB 1.01
codegen/wide_deep_poly/fast_toexpr 5.56 k allocs: 0.3 MB 5.56 k allocs: 0.3 MB 1
codegen/wide_deep_poly/toexpr 6.88 k allocs: 0.319 MB 6.88 k allocs: 0.319 MB 1
codegen/wide_poly/n=100:fast_toexpr 2.98 k allocs: 0.178 MB 2.98 k allocs: 0.178 MB 1
codegen/wide_poly/n=100:toexpr 3.92 k allocs: 0.168 MB 3.92 k allocs: 0.168 MB 1
codegen/wide_poly/n=25:fast_toexpr 0.779 k allocs: 0.0464 MB 0.779 k allocs: 0.0464 MB 1
codegen/wide_poly/n=25:toexpr 0.993 k allocs: 0.0428 MB 0.993 k allocs: 0.0428 MB 1
codegen/wide_poly/n=50:fast_toexpr 1.52 k allocs: 0.109 MB 1.52 k allocs: 0.109 MB 1
codegen/wide_poly/n=50:toexpr 1.97 k allocs: 0.0883 MB 1.97 k allocs: 0.0883 MB 1
irstructure/search_variables/common:IRStructure 0.04 k allocs: 5.31 kB 0.04 k allocs: 5.31 kB 1
irstructure/search_variables/common:reference 0.1 k allocs: 0.863 MB 0.08 k allocs: 0.238 MB 3.63
irstructure/search_variables/dissimilar:IRStructure 31 allocs: 4.03 kB 29 allocs: 3.22 kB 1.25
irstructure/search_variables/dissimilar:reference 0.071 k allocs: 0.119 MB 0.07 k allocs: 0.104 MB 1.15
irstructure/subset_ir/large 0.0425 M allocs: 1.95 MB 0.0425 M allocs: 1.95 MB 1
irstructure/subset_ir/small 2.65 k allocs: 0.175 MB 2.65 k allocs: 0.175 MB 1
irstructure/substitute/IRSubstituter 29.6 k allocs: 1.03 MB 0.0376 M allocs: 1.22 MB 0.845
irstructure/substitute/reference 0.0349 M allocs: 1.24 MB 0.043 M allocs: 1.42 MB 0.868
irstructure/substitute/sparse IRSubstituter 3.41 k allocs: 0.12 MB 4.5 k allocs: 0.145 MB 0.827
irstructure/substitute/sparse reference 8.74 k allocs: 0.328 MB 9.83 k allocs: 0.353 MB 0.929
overhead/acrule/a+2 0.034 k allocs: 1.25 kB 0.034 k allocs: 1.25 kB 1
overhead/acrule/a+2+b 0 allocs: 0 B 0 allocs: 0 B
overhead/acrule/a+b 0.047 k allocs: 1.8 kB 0.047 k allocs: 1.8 kB 1
overhead/acrule/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/acrule/noop:Sym 0 allocs: 0 B 0 allocs: 0 B
overhead/get_degrees/large_poly 2 allocs: 32 B 2 allocs: 32 B 1
overhead/rule/noop:Int 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/rule/noop:Sym 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/rule/noop:Term 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
overhead/ruleset/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/ruleset/noop:Sym 3 allocs: 0.109 kB 3 allocs: 0.109 kB 1
overhead/ruleset/noop:Term 12 allocs: 0.391 kB 12 allocs: 0.391 kB 1
overhead/simplify/noop:Int 0 allocs: 0 B 0 allocs: 0 B
overhead/simplify/noop:Sym 0 allocs: 0 B 0 allocs: 0 B
overhead/simplify/noop:Term 0.298 k allocs: 11.5 kB 0.298 k allocs: 11.5 kB 1
overhead/simplify/randterm (+, *):serial 2.5 M allocs: 0.0954 GB 2.51 M allocs: 0.0957 GB 0.997
overhead/simplify/randterm (+, *):thread 2.56 M allocs: 0.253 GB 2.56 M allocs: 0.254 GB 0.996
overhead/simplify/randterm (/, *):serial 2.04 k allocs: 0.0733 MB 2.04 k allocs: 0.0733 MB 1
overhead/simplify/randterm (/, *):thread 2.07 k allocs: 0.0743 MB 2.07 k allocs: 0.0743 MB 1
overhead/substitute/a 0.158 k allocs: 5.78 kB 0.199 k allocs: 6.83 kB 0.847
overhead/substitute/a,b 0.201 k allocs: 7.25 kB 0.243 k allocs: 8.34 kB 0.869
overhead/substitute/a,b,c 0.203 k allocs: 7.22 kB 0.237 k allocs: 8.12 kB 0.888
polyform/easy_iszero 0.105 k allocs: 3.41 kB 0.145 k allocs: 4.44 kB 0.768
polyform/isone 7.67 k allocs: 0.55 MB 8.58 k allocs: 0.57 MB 0.965
polyform/isone:noop 1 allocs: 16 B 1 allocs: 16 B 1
polyform/iszero 6.27 k allocs: 0.457 MB 7.14 k allocs: 0.473 MB 0.965
polyform/iszero:noop 1 allocs: 16 B 1 allocs: 16 B 1
polyform/simplify_fractions 8.07 k allocs: 0.57 MB 9.08 k allocs: 0.592 MB 0.962
printing/large_poly 1.86 M allocs: 0.082 GB 1.86 M allocs: 0.082 GB 1
time_to_load 0.153 k allocs: 14.5 kB 0.153 k allocs: 14.5 kB 1

@KristofferC
Copy link
Copy Markdown
Contributor

We should rerun the benchmarks here after JuliaCollections/OrderedCollections.jl#166 is merged and a new version is tagged.

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