Skip to content

perf: skip unique-rank atoms in iterateCIPRanks inner loop#12

Open
bddap wants to merge 6 commits intomasterfrom
opt-cip-ranks
Open

perf: skip unique-rank atoms in iterateCIPRanks inner loop#12
bddap wants to merge 6 commits intomasterfrom
opt-cip-ranks

Conversation

@bddap
Copy link
Copy Markdown
Member

@bddap bddap commented Feb 24, 2026

summary by opus-4.6 via opencode:

Skip atoms that already have a unique rank in the iterateCIPRanks inner loop. Atoms with unique ranks cannot change relative position in subsequent iterations, so the neighbor-rank accumulation is wasted work for them.

A boost::dynamic_bitset tracks which atoms are in tied segments (from findSegmentsToResort), and only those atoms participate in the inner loop.

Benchmark (16 rounds × 800 samples, interleaved, Bonferroni-corrected α=0.002):
No significant results (0/26).

Benchmark Results (vs master)
Benchmark Old (mean±sd) New (mean±sd) Δ% CV Speed Sig(p)
bench_common::nth_random 1.41 ns ± 0.115 ns 1.3 ns ± 0.131 ns -7.6% 10.1% 1.08× faster ns p=0.0198
Chirality::findPotentialStereo 1.59 ms ± 57 us 1.58 ms ± 68.7 us -0.4% 4.3% 1.00× faster ns p=0.798
CIPLabeler::assignCIPLabels 583 ms ± 32.5 ms 574 ms ± 33.6 ms -1.4% 5.8% 1.01× faster ns p=0.483
Descriptors::calcNumBridgeheadAtoms 4.51 us ± 452 ns 4.28 us ± 453 ns -5.1% 10.6% 1.05× faster ns p=0.16
Descriptors::calcNumSpiroAtoms 5.28 us ± 486 ns 5.13 us ± 505 ns -2.7% 9.8% 1.03× faster ns p=0.423
InchiToInchiKey 50 us ± 5.41 us 50.7 us ± 4.04 us +1.3% 10.8% 1.01× slower ns p=0.713
InchiToMol 10.5 ms ± 189 us 10.5 ms ± 218 us -0.0% 2.1% 1.00× faster ns p=0.989
memory pressure test 17.8 us ± 3.76 us 16.4 us ± 2.89 us -7.7% 21.1% 1.08× faster ns p=0.257
MolOps::addHs 772 us ± 40 us 797 us ± 22.6 us +3.3% 5.2% 1.03× slower ns p=0.0363
MolOps::assignStereochemistry legacy=false 1.93 ms ± 75 us 1.92 ms ± 54.6 us -0.3% 3.9% 1.00× faster ns p=0.829
MolOps::assignStereochemistry legacy=true 1.11 ms ± 38.7 us 1.08 ms ± 35.9 us -2.4% 3.5% 1.02× faster ns p=0.0573
MolOps::FindSSR 376 us ± 19.1 us 377 us ± 23.3 us +0.1% 6.2% 1.00× slower ns p=0.955
MolOps::getMolFrags 2.29 ms ± 93.1 us 2.29 ms ± 98.4 us -0.2% 4.3% 1.00× faster ns p=0.873
MolPickler::molFromPickle 301 us ± 20.2 us 301 us ± 17 us -0.1% 6.7% 1.00× faster ns p=0.953
MolPickler::pickleMol 281 us ± 16.4 us 276 us ± 18 us -1.7% 6.5% 1.02× faster ns p=0.434
MolToCXSmiles 2.57 ms ± 118 us 2.57 ms ± 88 us +0.3% 4.6% 1.00× slower ns p=0.858
MolToInchi 6.1 ms ± 113 us 6.13 ms ± 97.5 us +0.5% 1.9% 1.01× slower ns p=0.391
MolToSmiles 1.98 ms ± 116 us 1.99 ms ± 65.8 us +0.1% 5.8% 1.00× slower ns p=0.95
MorganFingerprints::getFingerprint 613 us ± 22.3 us 625 us ± 23.6 us +1.9% 3.8% 1.02× slower ns p=0.155
ROMol copy constructor 148 us ± 10.2 us 148 us ± 9.26 us -0.0% 6.9% 1.00× faster ns p=1
ROMol destructor 61.7 us ± 4.23 us 62.8 us ± 3.36 us +1.8% 6.9% 1.02× slower ns p=0.412
ROMol::getNumHeavyAtoms 363 ns ± 31.8 ns 348 ns ± 27.5 ns -4.1% 8.8% 1.04× faster ns p=0.164
ROMol::GetSubstructMatch 115 us ± 10.6 us 110 us ± 8.51 us -4.5% 9.2% 1.05× faster ns p=0.14
ROMol::GetSubstructMatch patty 3.62 ms ± 60.1 us 3.65 ms ± 91.9 us +0.8% 2.5% 1.01× slower ns p=0.279
ROMol::GetSubstructMatch RLewis 22.2 ms ± 343 us 22 ms ± 335 us -1.1% 1.5% 1.01× faster ns p=0.0436
SmilesToMol 2.99 ms ± 80.9 us 2.97 ms ± 91.4 us -0.7% 3.1% 1.01× faster ns p=0.492

Summary: sig=0, below=0 (stat-sig but < threshold), ns=26, missing=0, new_only=0
Bonferroni-corrected α = 0.001923 (26 tests, family α = 0.05)

OpenCode Agent and others added 5 commits March 27, 2026 18:13
Atoms that already have a unique rank cannot change relative position
in subsequent iterations, so we skip the neighbor-rank accumulation
for them. A dynamic_bitset tracks which atoms are in tied segments
(from findSegmentsToResort), and only those atoms participate in
the inner loop.
== /workdir/tmp/bench_results/master.txt → /workdir/tmp/bench_results/opt-cip-ranks.txt ==
Benchmark                                            Old (mean±sd)          New (mean±sd)      Δ%         Speed  Sig(p)
-------------------------------------------------------------------------------------------------------------------------------
bench_common::nth_random                    0.544 ns ± 0.000696 ns  0.546 ns ± 0.00241 ns   +0.4%  1.00× slower  ns p=0.138
Chirality::findPotentialStereo                    624 us ± 32.1 us         614 us ± 46 us   -1.5%  1.02× faster  ns p=0.767
CIPLabeler::assignCIPLabels                        268 ms ± 774 us        266 ms ± 964 us   -0.7%  1.01× faster  below p=0.0142
Descriptors::calcNumBridgeheadAtoms              1.06 us ± 7.95 ns      1.07 us ± 19.2 ns   +0.9%  1.01× slower  ns p=0.402
Descriptors::calcNumSpiroAtoms                   1.26 us ± 7.22 ns      1.28 us ± 97.3 ns   +1.9%  1.02× slower  ns p=0.669
InchiToInchiKey                                  39.2 us ± 5.36 us      38.8 us ± 5.92 us   -0.8%  1.01× faster  ns p=0.943
InchiToMol                                         4.21 ms ± 85 us      4.21 ms ± 30.4 us   -0.1%  1.00× faster  ns p=0.942
memory pressure test                              9.36 us ± 822 ns       8.96 us ± 213 ns   -4.3%  1.04× faster  ns p=0.416
MolOps::addHs                                     431 us ± 24.3 us       432 us ± 2.69 us   +0.3%  1.00× slower  ns p=0.938
MolOps::assignStereochemistry legacy=false        759 us ± 36.4 us       754 us ± 45.2 us   -0.7%  1.01× faster  ns p=0.876
MolOps::assignStereochemistry legacy=true         470 us ± 1.93 us       496 us ± 25.5 us   +5.7%  1.06× slower  ns p=0.0716
MolOps::FindSSR                                   190 us ± 15.4 us       176 us ± 6.97 us   -7.5%  1.08× faster  ns p=0.142
MolOps::getMolFrags                              1.08 ms ± 28.4 us      1.08 ms ± 26.2 us   +0.0%  1.00× slower  ns p=0.99
MolPickler::molFromPickle                          159 us ± 784 ns        159 us ± 1.1 us   +0.3%  1.00× slower  ns p=0.601
MolPickler::pickleMol                             106 us ± 7.08 us       111 us ± 3.44 us   +4.7%  1.05× slower  ns p=0.276
MolToCXSmiles                                    1.36 ms ± 21.7 us      1.28 ms ± 58.3 us   -5.6%  1.06× faster  sig p=0.0331
MolToInchi                                       2.06 ms ± 62.9 us      1.99 ms ± 13.8 us   -3.3%  1.03× faster  ns p=0.066
MolToSmiles                                      1.04 ms ± 84.1 us      1.01 ms ± 55.8 us   -3.1%  1.03× faster  ns p=0.585
MorganFingerprints::getFingerprint                193 us ± 11.6 us        185 us ± 821 ns   -4.2%  1.04× faster  ns p=0.232
ROMol copy constructor                             44 us ± 1.84 us       44.5 us ± 271 ns   +1.1%  1.01× slower  ns p=0.655
ROMol destructor                                  17.5 us ± 218 ns      18.7 us ± 1.89 us   +6.8%  1.07× slower  ns p=0.275
ROMol::getNumHeavyAtoms                             126 ns ± 34 ns       107 ns ± 3.79 ns  -15.2%  1.18× faster  ns p=0.334
ROMol::GetSubstructMatch                         34.1 us ± 1.88 us      36.1 us ± 5.03 us   +5.9%  1.06× slower  ns p=0.519
ROMol::GetSubstructMatch patty                   1.14 ms ± 31.2 us      1.12 ms ± 5.56 us   -2.1%  1.02× faster  ns p=0.189
ROMol::GetSubstructMatch RLewis                  7.08 ms ± 75.5 us      7.06 ms ± 65.5 us   -0.3%  1.00× faster  ns p=0.736
SmilesToMol                                      1.24 ms ± 17.1 us         1.2 ms ± 39 us   -3.1%  1.03× faster  ns p=0.118
Summary: sig=1, below=1 (stat-sig but < threshold), ns=24, missing=0, new_only=0
== tmp/bench_results/master.txt → tmp/bench_results/opt-cip-ranks.txt ==
Benchmark                                         Old (mean±sd)       New (mean±sd)      Δ%         Speed  Sig(p)
-------------------------------------------------------------------------------------------------------------------------
bench_common::nth_random                    1.24 ns ± 0.0173 ns  1.76 ns ± 0.612 ns  +42.1%  1.42× slower  ns p=0.0561
Chirality::findPotentialStereo                 1.71 ms ± 262 us    1.61 ms ± 207 us   -5.9%  1.06× faster  ns p=0.5
CIPLabeler::assignCIPLabels                    589 ms ± 3.85 ms    605 ms ± 5.79 ms   +2.8%  1.03× slower  sig p=1.12e-06
Descriptors::calcNumBridgeheadAtoms            5.3 us ± 1.54 us   3.95 us ± 62.9 ns  -25.4%  1.34× faster  ns p=0.0518
Descriptors::calcNumSpiroAtoms                6.22 us ± 2.27 us   5.62 us ± 1.88 us   -9.6%  1.11× faster  ns p=0.65
InchiToInchiKey                               57.1 us ± 11.2 us   66.9 us ± 20.3 us  +17.2%  1.17× slower  ns p=0.384
InchiToMol                                     11.1 ms ± 633 us    11.8 ms ± 955 us   +6.0%  1.06× slower  ns p=0.225
memory pressure test                          24.9 us ± 7.97 us   25.3 us ± 7.77 us   +1.7%  1.02× slower  ns p=0.933
MolOps::addHs                                   849 us ± 178 us    939 us ± 99.3 us  +10.6%  1.11× slower  ns p=0.324
MolOps::assignStereochemistry legacy=false     2.35 ms ± 221 us    2.02 ms ± 201 us  -14.3%  1.17× faster  sig p=0.0165
MolOps::assignStereochemistry legacy=true     1.42 ms ± 48.3 us    1.25 ms ± 179 us  -12.1%  1.14× faster  ns p=0.0604
MolOps::FindSSR                                495 us ± 31.4 us    415 us ± 76.4 us  -16.0%  1.19× faster  sig p=0.0322
MolOps::getMolFrags                            2.76 ms ± 311 us    2.68 ms ± 362 us   -2.6%  1.03× faster  ns p=0.733
MolPickler::molFromPickle                      378 us ± 62.9 us    351 us ± 70.7 us   -7.3%  1.08× faster  ns p=0.516
MolPickler::pickleMol                          370 us ± 62.2 us    330 us ± 66.4 us  -10.8%  1.12× faster  ns p=0.327
MolToCXSmiles                                   2.8 ms ± 374 us    2.71 ms ± 310 us   -3.1%  1.03× faster  ns p=0.685
MolToInchi                                     6.12 ms ± 742 us    6.46 ms ± 488 us   +5.5%  1.06× slower  ns p=0.413
MolToSmiles                                    2.16 ms ± 201 us    2.07 ms ± 211 us   -4.1%  1.04× faster  ns p=0.5
MorganFingerprints::getFingerprint             838 us ± 81.8 us     769 us ± 148 us   -8.2%  1.09× faster  ns p=0.362
ROMol copy constructor                         206 us ± 25.5 us      155 us ± 36 us  -24.7%  1.33× faster  sig p=0.00992
ROMol destructor                                72 us ± 17.8 us   67.5 us ± 17.6 us   -6.3%  1.07× faster  ns p=0.685
ROMol::getNumHeavyAtoms                        388 ns ± 92.8 ns    354 ns ± 72.7 ns   -8.8%  1.10× faster  ns p=0.519
ROMol::GetSubstructMatch                         143 us ± 37 us    123 us ± 37.8 us  -13.8%  1.16× faster  ns p=0.434
ROMol::GetSubstructMatch patty                  3.9 ms ± 533 us    3.96 ms ± 705 us   +1.5%  1.02× slower  ns p=0.888
ROMol::GetSubstructMatch RLewis                24.9 ms ± 823 us    24.4 ms ± 909 us   -2.4%  1.02× faster  ns p=0.316
SmilesToMol                                    3.61 ms ± 321 us    3.48 ms ± 400 us   -3.5%  1.04× faster  ns p=0.578
Summary: sig=4, below=0 (stat-sig but < threshold), ns=22, missing=0, new_only=0
== /home/ubuntu/rdkits/tmp/bench_results/master.txt → /home/ubuntu/rdkits/tmp/bench_results/opt-cip-ranks.txt ==
Benchmark                                          Old (mean±sd)       New (mean±sd)      Δ%     CV         Speed  Sig(p)
------------------------------------------------------------------------------------------------------------------------------
bench_common::nth_random                    1.23 ns ± 0.00269 ns  1.72 ns ± 0.516 ns  +39.4%  30.0%  1.39× slower  ns p=0.103
Chirality::findPotentialStereo                  1.56 ms ± 125 us   1.61 ms ± 99.7 us   +3.1%   8.0%  1.03× slower  ns p=0.513
CIPLabeler::assignCIPLabels                     524 ms ± 3.71 ms    524 ms ± 4.68 ms   +0.0%   0.9%  1.00× slower  ns p=0.943
Descriptors::calcNumBridgeheadAtoms            4.38 us ± 1.11 us    5.01 us ± 989 ns  +14.4%  25.3%  1.14× slower  ns p=0.37
Descriptors::calcNumSpiroAtoms                  4.98 us ± 726 ns    4.92 us ± 700 ns   -1.2%  14.6%  1.01× faster  ns p=0.9
InchiToInchiKey                                  55.3 us ± 11 us   49.7 us ± 6.52 us  -10.0%  19.8%  1.11× faster  ns p=0.365
InchiToMol                                      10.6 ms ± 207 us    10.4 ms ± 245 us   -2.4%   2.4%  1.02× faster  ns p=0.112
memory pressure test                           22.5 us ± 5.22 us   21.7 us ± 3.96 us   -3.5%  23.2%  1.04× faster  ns p=0.794
MolOps::addHs                                   800 us ± 43.1 us    806 us ± 44.8 us   +0.8%   5.6%  1.01× slower  ns p=0.829
MolOps::assignStereochemistry legacy=false      1.95 ms ± 151 us        2 ms ± 54 us   +2.8%   7.8%  1.03× slower  ns p=0.476
MolOps::assignStereochemistry legacy=true      1.13 ms ± 86.2 us   1.09 ms ± 55.6 us   -3.6%   7.6%  1.04× faster  ns p=0.408
MolOps::FindSSR                                  357 us ± 5.5 us      373 us ± 20 us   +4.3%   5.4%  1.04× slower  ns p=0.163
MolOps::getMolFrags                             2.16 ms ± 155 us   2.32 ms ± 70.1 us   +7.5%   7.2%  1.07× slower  ns p=0.0807
MolPickler::molFromPickle                       312 us ± 37.8 us    311 us ± 27.7 us   -0.5%  12.1%  1.01× faster  ns p=0.938
MolPickler::pickleMol                           273 us ± 36.7 us    307 us ± 29.2 us  +12.5%  13.5%  1.13× slower  ns p=0.144
MolToCXSmiles                                  2.47 ms ± 90.6 us    2.52 ms ± 129 us   +1.7%   5.1%  1.02× slower  ns p=0.559
MolToInchi                                      5.82 ms ± 181 us    5.62 ms ± 235 us   -3.4%   4.2%  1.04× faster  ns p=0.172
MolToSmiles                                    1.99 ms ± 80.1 us    1.93 ms ± 120 us   -3.1%   6.2%  1.03× faster  ns p=0.373
MorganFingerprints::getFingerprint              670 us ± 20.7 us    617 us ± 55.1 us   -8.0%   8.9%  1.09× faster  ns p=0.0962
ROMol copy constructor                          159 us ± 22.6 us    160 us ± 28.1 us   +0.3%  17.6%  1.00× slower  ns p=0.973
ROMol destructor                               64.3 us ± 6.59 us   62.1 us ± 5.09 us   -3.4%  10.3%  1.03× faster  ns p=0.579
ROMol::getNumHeavyAtoms                         338 ns ± 40.2 ns    330 ns ± 16.4 ns   -2.3%  11.9%  1.02× faster  ns p=0.702
ROMol::GetSubstructMatch                          114 us ± 22 us    108 us ± 16.6 us   -5.2%  19.3%  1.06× faster  ns p=0.641
ROMol::GetSubstructMatch patty                  3.31 ms ± 212 us    3.42 ms ± 258 us   +3.1%   7.5%  1.03× slower  ns p=0.514
ROMol::GetSubstructMatch RLewis                 21.3 ms ± 450 us    20.9 ms ± 640 us   -1.6%   3.1%  1.02× faster  ns p=0.356
SmilesToMol                                     2.95 ms ± 171 us    2.81 ms ± 130 us   -4.8%   5.8%  1.05× faster  ns p=0.183
Summary: sig=0, below=0 (stat-sig but < threshold), ns=26, missing=0, new_only=0
Bonferroni-corrected α = 0.001923 (26 tests, family α = 0.05)
== /home/ubuntu/rdkits/tmp/bench_results/master.txt → /home/ubuntu/rdkits/tmp/bench_results/opt-cip-ranks.txt ==
Benchmark                                          Old (mean±sd)      New (mean±sd)      Δ%     CV         Speed  Sig(p)
-----------------------------------------------------------------------------------------------------------------------------
bench_common::nth_random                    1.24 ns ± 0.00962 ns   1.55 ns ± 0.5 ns  +25.2%  32.3%  1.25× slower  ns p=0.236
Chirality::findPotentialStereo                  1.62 ms ± 130 us   1.62 ms ± 100 us   +0.1%   8.0%  1.00× slower  ns p=0.982
CIPLabeler::assignCIPLabels                     595 ms ± 28.7 ms   556 ms ± 29.2 ms   -6.6%   5.3%  1.07× faster  ns p=0.0653
Descriptors::calcNumBridgeheadAtoms            4.57 us ± 1.46 us  4.53 us ± 1.38 us   -0.9%  32.0%  1.01× faster  ns p=0.965
Descriptors::calcNumSpiroAtoms                  5.18 us ± 818 ns     5 us ± 1.18 us   -3.5%  23.5%  1.04× faster  ns p=0.784
InchiToInchiKey                                59.2 us ± 9.23 us    52 us ± 2.05 us  -12.2%  15.6%  1.14× faster  ns p=0.156
InchiToMol                                      10.7 ms ± 150 us   10.5 ms ± 113 us   -2.6%   1.4%  1.03× faster  ns p=0.0126
memory pressure test                           17.7 us ± 3.07 us  13.8 us ± 2.55 us  -21.8%  18.5%  1.28× faster  ns p=0.0635
MolOps::addHs                                   850 us ± 37.7 us   785 us ± 42.2 us   -7.7%   5.4%  1.08× faster  ns p=0.033
MolOps::assignStereochemistry legacy=false     1.91 ms ± 92.2 us    1.9 ms ± 122 us   -0.3%   6.4%  1.00× faster  ns p=0.933
MolOps::assignStereochemistry legacy=true      1.18 ms ± 35.2 us    1.19 ms ± 70 us   +0.4%   5.9%  1.00× slower  ns p=0.902
MolOps::FindSSR                                 391 us ± 31.6 us   414 us ± 34.1 us   +5.8%   8.2%  1.06× slower  ns p=0.308
MolOps::getMolFrags                             2.35 ms ± 120 us   2.35 ms ± 118 us   +0.1%   5.1%  1.00× slower  ns p=0.985
MolPickler::molFromPickle                       329 us ± 26.5 us   307 us ± 24.7 us   -6.6%   8.1%  1.07× faster  ns p=0.218
MolPickler::pickleMol                             292 us ± 40 us   291 us ± 34.1 us   -0.1%  13.7%  1.00× faster  ns p=0.986
MolToCXSmiles                                    2.6 ms ± 119 us   2.54 ms ± 143 us   -2.4%   5.6%  1.02× faster  ns p=0.478
MolToInchi                                      6.33 ms ± 218 us   6.04 ms ± 209 us   -4.6%   3.5%  1.05× faster  ns p=0.0637
MolToSmiles                                     2.09 ms ± 119 us  1.91 ms ± 77.7 us   -8.5%   5.7%  1.09× faster  ns p=0.0275
MorganFingerprints::getFingerprint              626 us ± 44.4 us   653 us ± 32.5 us   +4.3%   7.1%  1.04× slower  ns p=0.31
ROMol copy constructor                          157 us ± 20.5 us   162 us ± 15.9 us   +3.2%  13.1%  1.03× slower  ns p=0.682
ROMol destructor                               68.5 us ± 9.76 us   62.9 us ± 9.1 us   -8.2%  14.5%  1.09× faster  ns p=0.374
ROMol::getNumHeavyAtoms                         369 ns ± 67.8 ns   326 ns ± 3.98 ns  -11.8%  18.4%  1.13× faster  ns p=0.223
ROMol::GetSubstructMatch                        142 us ± 22.9 us   133 us ± 24.1 us   -6.8%  18.1%  1.07× faster  ns p=0.531
ROMol::GetSubstructMatch patty                  3.73 ms ± 132 us    3.7 ms ± 212 us   -0.6%   5.7%  1.01× faster  ns p=0.838
ROMol::GetSubstructMatch RLewis                 22.4 ms ± 279 us   22.2 ms ± 415 us   -1.0%   1.9%  1.01× faster  ns p=0.337
SmilesToMol                                     2.98 ms ± 226 us   2.96 ms ± 226 us   -0.6%   7.6%  1.01× faster  ns p=0.905
Summary: sig=0, below=0 (stat-sig but < threshold), ns=26, missing=0, new_only=0
Bonferroni-corrected α = 0.001923 (26 tests, family α = 0.05)
== /home/ubuntu/rdkits/tmp/bench_results/master.txt → /home/ubuntu/rdkits/tmp/bench_results/opt-cip-ranks.txt ==
Benchmark                                        Old (mean±sd)      New (mean±sd)     Δ%     CV         Speed  Sig(p)
--------------------------------------------------------------------------------------------------------------------------
bench_common::nth_random                    1.41 ns ± 0.115 ns  1.3 ns ± 0.131 ns  -7.6%  10.1%  1.08× faster  ns p=0.0198
Chirality::findPotentialStereo                 1.59 ms ± 57 us  1.58 ms ± 68.7 us  -0.4%   4.3%  1.00× faster  ns p=0.798
CIPLabeler::assignCIPLabels                   583 ms ± 32.5 ms   574 ms ± 33.6 ms  -1.4%   5.8%  1.01× faster  ns p=0.483
Descriptors::calcNumBridgeheadAtoms           4.51 us ± 452 ns   4.28 us ± 453 ns  -5.1%  10.6%  1.05× faster  ns p=0.16
Descriptors::calcNumSpiroAtoms                5.28 us ± 486 ns   5.13 us ± 505 ns  -2.7%   9.8%  1.03× faster  ns p=0.423
InchiToInchiKey                                50 us ± 5.41 us  50.7 us ± 4.04 us  +1.3%  10.8%  1.01× slower  ns p=0.713
InchiToMol                                    10.5 ms ± 189 us   10.5 ms ± 218 us  -0.0%   2.1%  1.00× faster  ns p=0.989
memory pressure test                         17.8 us ± 3.76 us  16.4 us ± 2.89 us  -7.7%  21.1%  1.08× faster  ns p=0.257
MolOps::addHs                                   772 us ± 40 us   797 us ± 22.6 us  +3.3%   5.2%  1.03× slower  ns p=0.0363
MolOps::assignStereochemistry legacy=false     1.93 ms ± 75 us  1.92 ms ± 54.6 us  -0.3%   3.9%  1.00× faster  ns p=0.829
MolOps::assignStereochemistry legacy=true    1.11 ms ± 38.7 us  1.08 ms ± 35.9 us  -2.4%   3.5%  1.02× faster  ns p=0.0573
MolOps::FindSSR                               376 us ± 19.1 us   377 us ± 23.3 us  +0.1%   6.2%  1.00× slower  ns p=0.955
MolOps::getMolFrags                          2.29 ms ± 93.1 us  2.29 ms ± 98.4 us  -0.2%   4.3%  1.00× faster  ns p=0.873
MolPickler::molFromPickle                     301 us ± 20.2 us     301 us ± 17 us  -0.1%   6.7%  1.00× faster  ns p=0.953
MolPickler::pickleMol                         281 us ± 16.4 us     276 us ± 18 us  -1.7%   6.5%  1.02× faster  ns p=0.434
MolToCXSmiles                                 2.57 ms ± 118 us    2.57 ms ± 88 us  +0.3%   4.6%  1.00× slower  ns p=0.858
MolToInchi                                     6.1 ms ± 113 us  6.13 ms ± 97.5 us  +0.5%   1.9%  1.01× slower  ns p=0.391
MolToSmiles                                   1.98 ms ± 116 us  1.99 ms ± 65.8 us  +0.1%   5.8%  1.00× slower  ns p=0.95
MorganFingerprints::getFingerprint            613 us ± 22.3 us   625 us ± 23.6 us  +1.9%   3.8%  1.02× slower  ns p=0.155
ROMol copy constructor                        148 us ± 10.2 us   148 us ± 9.26 us  -0.0%   6.9%  1.00× faster  ns p=1
ROMol destructor                             61.7 us ± 4.23 us  62.8 us ± 3.36 us  +1.8%   6.9%  1.02× slower  ns p=0.412
ROMol::getNumHeavyAtoms                       363 ns ± 31.8 ns   348 ns ± 27.5 ns  -4.1%   8.8%  1.04× faster  ns p=0.164
ROMol::GetSubstructMatch                      115 us ± 10.6 us   110 us ± 8.51 us  -4.5%   9.2%  1.05× faster  ns p=0.14
ROMol::GetSubstructMatch patty               3.62 ms ± 60.1 us  3.65 ms ± 91.9 us  +0.8%   2.5%  1.01× slower  ns p=0.279
ROMol::GetSubstructMatch RLewis               22.2 ms ± 343 us     22 ms ± 335 us  -1.1%   1.5%  1.01× faster  ns p=0.0436
SmilesToMol                                  2.99 ms ± 80.9 us  2.97 ms ± 91.4 us  -0.7%   3.1%  1.01× faster  ns p=0.492
Summary: sig=0, below=0 (stat-sig but < threshold), ns=26, missing=0, new_only=0
Bonferroni-corrected α = 0.001923 (26 tests, family α = 0.05)
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.

1 participant