Skip to content
Snippets Groups Projects
Commit 741295936611 authored by Pierre-Yves David's avatar Pierre-Yves David :octopus:
Browse files

copies-rust: tokenize all paths into integer

Copy information for each changesets tend to affect a small new number of path.
However, each of these path will be handled a large number of time.

With this patch we:
- turn any input path into integer early,
- do all the internal logic using integer,
- turn integer back into path right before returning a result.

This gives use a quite significant performance boost in our slower cases.

mercurial       x_revs_x_added_0_copies               ad6b123de1c7 39cfcef4f463 :   0.000050 s,   0.000050 s,  +0.000000 s, × 1.0000
mercurial       x_revs_x_added_x_copies               2b1c78674230 0c1d10351869 :   0.6f1f4a s,   0.000319 s,  -0.000003 s, × 0.9907
mercurial       x000_revs_x000_added_x_copies         81f8ff2a9bf2 dd3267698d84 :   0.004304 s,   0.004224 s,  -0.000080 s, × 0.9814
pypy            x_revs_x_added_0_copies               aed021ee8ae8 099ed31b181b :   0.000356 s,   0.000306 s,  -0.000050 s, × 0.8596
pypy            x_revs_x000_added_0_copies            4aa4e1f8e19a 359343b9ac0e :   0.000058 s,   0.000058 s,  +0.000000 s, × 1.0000
pypy            x_revs_x_added_x_copies               ac52eb7bbbb0 72e022663155 :   0.000157 s,   0.000118 s,  -0.000039 s, × 0.7516
pypy            x_revs_x00_added_x_copies             c3b14617fbd7 ace7255d9a26 :   0.000455 s,   0.000458 s,  +0.000003 s, × 1.0066
pypy            x_revs_x000_added_x000_copies         df6f7a526b60 a83dc6a2d56f :   0.011444 s,   0.011197 s,  -0.000247 s, × 0.9784
pypy            x000_revs_xx00_added_0_copies         89a76aede314 2f22446ff07e :   0.054590 s,   0.048653 s,  -0.005937 s, × 0.8912
pypy            x000_revs_x000_added_x_copies         8a3b5bfd266e 2c68e87c3efe :   0.093130 s,   0.077680 s,  -0.015450 s, × 0.8341
pypy            x000_revs_x000_added_x000_copies      89a76aede314 7b3dda341c84 :   0.066567 s,   0.058104 s,  -0.008463 s, × 0.8729
pypy            x0000_revs_x_added_0_copies           d1defd0dc478 c9cb1334cc78 :   1.575426 s,   0.828742 s,  -0.746684 s, × 0.5260
pypy            x0000_revs_xx000_added_0_copies       bf2c629d0071 4ffed77c095c :   0.022066 s,   0.020462 s,  -0.001604 s, × 0.9273
pypy            x0000_revs_xx000_added_x000_copies    08ea3258278e d9fa043f30c0 :   0.158376 s,   0.124274 s,  -0.034102 s, × 0.7847
netbeans        x_revs_x_added_0_copies               fb0955ffcbcd a01e9239f9e7 :   0.000146 s,   0.000144 s,  -0.000002 s, × 0.9863
netbeans        x_revs_x000_added_0_copies            6f360122949f 20eb231cc7d0 :   0.000115 s,   0.000113 s,  -0.000002 s, × 0.9826
netbeans        x_revs_x_added_x_copies               1ada3faf6fb6 5a39d12eecf4 :   0.000242 s,   0.000242 s,  +0.000000 s, × 1.0000
netbeans        x_revs_x00_added_x_copies             35be93ba1e2c 9eec5e90c05f :   0.000757 s,   0.000748 s,  -0.000009 s, × 0.9881
netbeans        x000_revs_xx00_added_0_copies         eac3045b4fdd 51d4ae7f1290 :   0.011011 s,   0.010193 s,  -0.000818 s, × 0.9257
netbeans        x000_revs_x000_added_x_copies         e2063d266acd 6081d72689dc :   0.016291 s,   0.015360 s,  -0.000931 s, × 0.9429
netbeans        x000_revs_x000_added_x000_copies      ff453e9fee32 411350406ec2 :   0.086308 s,   0.062706 s,  -0.023602 s, × 0.7265
netbeans        x0000_revs_xx000_added_x000_copies    588c2d1ced70 1aad62e59ddd :   1.020436 s,   0.619101 s,  -0.401335 s, × 0.6067
mozilla-central x_revs_x_added_0_copies               3697f962bb7b 7015fcdd43a2 :   0.000164 s,   0.000165 s,  +0.000001 s, × 1.0061
mozilla-central x_revs_x000_added_0_copies            dd390860c6c9 40d0c5bed75d :   0.000362 s,   0.000347 s,  -0.000015 s, × 0.9586
mozilla-central x_revs_x_added_x_copies               8d198483ae3b 14207ffc2b2f :   0.000458 s,   0.000456 s,  -0.000002 s, × 0.9956
mozilla-central x_revs_x00_added_x_copies             98cbc58cc6bc 446a150332c3 :   0.000740 s,   0.000732 s,  -0.000008 s, × 0.9892
mozilla-central x_revs_x000_added_x000_copies         3c684b4b8f68 0a5e72d1b479 :   0.003800 s,   0.003721 s,  -0.000079 s, × 0.9792
mozilla-central x_revs_x0000_added_x0000_copies       effb563bb7e5 c07a39dc4e80 :   0.072368 s,   0.075508 s,  +0.003140 s, × 1.0434
mozilla-central x000_revs_xx00_added_0_copies         6100d773079a 04a55431795e :   0.006241 s,   0.005841 s,  -0.000400 s, × 0.9359
mozilla-central x000_revs_x000_added_x_copies         9f17a6fc04f9 2d37b966abed :   0.005859 s,   0.005905 s,  +0.000046 s, × 1.0079
mozilla-central x000_revs_x000_added_x000_copies      7c97034feb78 4407bd0c6330 :   0.072461 s,   0.064343 s,  -0.008118 s, × 0.8880
mozilla-central x0000_revs_xx000_added_0_copies       9eec5917337d 67118cc6dcad :   0.044759 s,   0.043973 s,  -0.000786 s, × 0.9824
mozilla-central x0000_revs_xx000_added_x000_copies    f78c615a656c 96a38b690156 :   0.240657 s,   0.206595 s,  -0.034062 s, × 0.8585
mozilla-central x00000_revs_x0000_added_x0000_copies  6832ae71433c 4c222a1d9a00 :   2.854880 s,   2.144500 s,  -0.710380 s, × 0.7512
mozilla-central x00000_revs_x00000_added_x000_copies  76caed42cf7c 1daa622bbe42 :   4.073228 s,   3.161627 s,  -0.911601 s, × 0.7762
mozilla-try     x_revs_x_added_0_copies               aaf6dde0deb8 9790f499805a :   0.001216 s,   0.001220 s,  +0.000004 s, × 1.0033
mozilla-try     x_revs_x000_added_0_copies            d8d0222927b4 5bb8ce8c7450 :   0.001228 s,   0.001216 s,  -0.000012 s, × 0.9902
mozilla-try     x_revs_x_added_x_copies               092fcca11bdb 936255a0384a :   0.000715 s,   0.000561 s,  -0.000154 s, × 0.7846
mozilla-try     x_revs_x00_added_x_copies             b53d2fadbdb5 017afae788ec :   0.001566 s,   0.001552 s,  -0.000014 s, × 0.9911
mozilla-try     x_revs_x000_added_x000_copies         20408ad61ce5 6f0ee96e21ad :   0.038448 s,   0.037980 s,  -0.000468 s, × 0.9878
mozilla-try     x_revs_x0000_added_x0000_copies       effb563bb7e5 c07a39dc4e80 :   0.072556 s,   0.076684 s,  +0.004128 s, × 1.0569
mozilla-try     x000_revs_xx00_added_0_copies         6100d773079a 04a55431795e :   0.006488 s,   0.006275 s,  -0.000213 s, × 0.9672
mozilla-try     x000_revs_x000_added_x_copies         9f17a6fc04f9 2d37b966abed :   0.006162 s,   0.006191 s,  +0.000029 s, × 1.0047
mozilla-try     x000_revs_x000_added_x000_copies      1346fd0130e4 4c65cbdabc1f :   0.077630 s,   0.066649 s,  -0.010981 s, × 0.8585
mozilla-try     x0000_revs_x_added_0_copies           63519bfd42ee a36a2a865d92 :   0.381329 s,   0.318397 s,  -0.062932 s, × 0.8350
mozilla-try     x0000_revs_x_added_x_copies           9fe69ff0762d bcabf2a78927 :   0.355541 s,   0.300410 s,  -0.055131 s, × 0.8449
mozilla-try     x0000_revs_xx000_added_x_copies       156f6e2674f2 4d0f2c178e66 :   0.123808 s,   0.112972 s,  -0.010836 s, × 0.9125
mozilla-try     x0000_revs_xx000_added_0_copies       9eec5917337d 67118cc6dcad :   0.046165 s,   0.046047 s,  -0.000118 s, × 0.9974
mozilla-try     x0000_revs_xx000_added_x000_copies    89294cd501d9 7ccb2fc7ccb5 :   6.734203 s,   2.096240 s,  -4.637963 s, × 0.3113
mozilla-try     x0000_revs_x0000_added_x0000_copies   e928c65095ed e951f4ad123a :   0.988350 s,   0.825493 s,  -0.162857 s, × 0.8352
mozilla-try     x00000_revs_x_added_0_copies          6a320851d377 1ebb79acd503 : killed      ,  47.006454 s
mozilla-try     x00000_revs_x00000_added_0_copies     dc8a3ca7010e d16fde900c9c :   1.092750 s,   1.000758 s,  -0.091992 s, × 0.9158
mozilla-try     x00000_revs_x_added_x_copies          5173c4b6f97c 95d83ee7242d : killed      ,  47.097727 s
mozilla-try     x00000_revs_x000_added_x_copies       9126823d0e9c ca82787bb23c : killed      ,  47.724008 s
mozilla-try     x00000_revs_x0000_added_x0000_copies  8d3fafa80d4b eb884023b810 :   4.609843 s,   3.416883 s,  -1.192960 s, × 0.7412
mozilla-try     x00000_revs_x00000_added_x0000_copies 1b661134e2ca 1ae03d022d6d : killed      ,  44.803615 s
mozilla-try     x00000_revs_x00000_added_x000_copies  9b2a99adc05e 8e29777b48e6 : killed      ,  53.605365 s



#filelof vs current

mercurial       x_revs_x_added_0_copies               ad6b123de1c7 39cfcef4f463 : 0.000894 s, 0.000048 s, -0.000846 s, × 0.053691
mercurial       x_revs_x_added_x_copies               2b1c78674230 0c1d10351869 : 0.001841 s, 0.000177 s, -0.001664 s, × 0.096143
mercurial       x000_revs_x000_added_x_copies         81f8ff2a9bf2 dd3267698d84 : 0.018261 s, 0.005759 s, -0.012502 s, × 0.315372
pypy            x_revs_x_added_0_copies               aed021ee8ae8 099ed31b181b : 0.001497 s, 0.000230 s, -0.001267 s, × 0.153641
pypy            x_revs_x000_added_0_copies            4aa4e1f8e19a 359343b9ac0e : 0.206925 s, 0.000058 s, -0.206867 s, × 0.000280
pypy            x_revs_x_added_x_copies               ac52eb7bbbb0 72e022663155 : 0.017009 s, 0.000147 s, -0.016862 s, × 0.008642
pypy            x_revs_x00_added_x_copies             c3b14617fbd7 ace7255d9a26 : 0.019121 s, 0.001180 s, -0.017941 s, × 0.061712
pypy            x_revs_x000_added_x000_copies         df6f7a526b60 a83dc6a2d56f : 0.759070 s, 0.024801 s, -0.734269 s, × 0.032673
pypy            x000_revs_xx00_added_0_copies         89a76aede314 2f22446ff07e : 1.180655 s, 0.078721 s, -1.101934 s, × 0.066676
pypy            x000_revs_x000_added_x_copies         8a3b5bfd266e 2c68e87c3efe : 1.259675 s, 0.264373 s, -0.995302 s, × 0.209874
pypy            x000_revs_x000_added_x000_copies      89a76aede314 7b3dda341c84 : 1.622248 s, 0.098505 s, -1.523743 s, × 0.060721
pypy            x0000_revs_x_added_0_copies           d1defd0dc478 c9cb1334cc78 : 0.001064 s, 41.256913 s, +41.255849 s, × 38775.294173
pypy            x0000_revs_xx000_added_0_copies       bf2c629d0071 4ffed77c095c : 1.058567 s, 0.020750 s, -1.037817 s, × 0.019602
pypy            x0000_revs_xx000_added_x000_copies    08ea3258278e d9fa043f30c0 : 1.351839 s, 0.410236 s, -0.941603 s, × 0.303465
netbeans        x_revs_x_added_0_copies               fb0955ffcbcd a01e9239f9e7 : 0.028106 s, 0.000182 s, -0.027924 s, × 0.006475
netbeans        x_revs_x000_added_0_copies            6f360122949f 20eb231cc7d0 : 0.131016 s, 0.000130 s, -0.130886 s, × 0.000992
netbeans        x_revs_x_added_x_copies               1ada3faf6fb6 5a39d12eecf4 : 0.025333 s, 0.6f1f4a s, -0.025011 s, × 0.012711
netbeans        x_revs_x00_added_x_copies             35be93ba1e2c 9eec5e90c05f : 0.052693 s, 0.001315 s, -0.051378 s, × 0.024956
netbeans        x000_revs_xx00_added_0_copies         eac3045b4fdd 51d4ae7f1290 : 0.038031 s, 0.016029 s, -0.022002 s, × 0.421472
netbeans        x000_revs_x000_added_x_copies         e2063d266acd 6081d72689dc : 0.196393 s, 0.018260 s, -0.178133 s, × 0.092977
netbeans        x000_revs_x000_added_x000_copies      ff453e9fee32 411350406ec2 : 0.944655 s, 0.112329 s, -0.832326 s, × 0.118910
netbeans        x0000_revs_xx000_added_x000_copies    588c2d1ced70 1aad62e59ddd : 3.843172 s, 6.442056 s, +2.598884 s, × 1.676234
mozilla-central x_revs_x_added_0_copies               3697f962bb7b 7015fcdd43a2 : 0.024489 s, 0.000199 s, -0.024290 s, × 0.008126
mozilla-central x_revs_x000_added_0_copies            dd390860c6c9 40d0c5bed75d : 0.143630 s, 0.000614 s, -0.143016 s, × 0.004275
mozilla-central x_revs_x_added_x_copies               8d198483ae3b 14207ffc2b2f : 0.025790 s, 0.000300 s, -0.025490 s, × 0.011632
mozilla-central x_revs_x00_added_x_copies             98cbc58cc6bc 446a150332c3 : 0.085690 s, 0.001678 s, -0.084012 s, × 0.019582
mozilla-central x_revs_x000_added_x000_copies         3c684b4b8f68 0a5e72d1b479 : 0.199500 s, 0.006794 s, -0.192706 s, × 0.034055
mozilla-central x_revs_x0000_added_x0000_copies       effb563bb7e5 c07a39dc4e80 : 2.198577 s, 0.131100 s, -2.067477 s, × 0.059629
mozilla-central x000_revs_xx00_added_0_copies         6100d773079a 04a55431795e : 0.088884 s, 0.008387 s, -0.080497 s, × 0.094359
mozilla-central x000_revs_x000_added_x_copies         9f17a6fc04f9 2d37b966abed : 0.736644 s, 0.005840 s, -0.730804 s, × 0.007928
mozilla-central x000_revs_x000_added_x000_copies      7c97034feb78 4407bd0c6330 : 1.147759 s, 0.106117 s, -1.041642 s, × 0.092456
mozilla-central x0000_revs_xx000_added_0_copies       9eec5917337d 67118cc6dcad : 6.719709 s, 0.046051 s, -6.673658 s, × 0.006853
mozilla-central x0000_revs_xx000_added_x000_copies    f78c615a656c 96a38b690156 : 3.256710 s, 0.332623 s, -2.924087 s, × 0.102135
mozilla-central x00000_revs_x0000_added_x0000_copies  6832ae71433c 4c222a1d9a00 : 15.756433 s, 11.834745 s, -3.921688 s, × 0.751106
mozilla-central x00000_revs_x00000_added_x000_copies  76caed42cf7c 1daa622bbe42 : 20.257673 s, 20.055512 s, -0.202161 s, × 0.990021
mozilla-try     x_revs_x_added_0_copies               aaf6dde0deb8 9790f499805a : 0.080847 s, 0.001194 s, -0.079653 s, × 0.014769
mozilla-try     x_revs_x000_added_0_copies            d8d0222927b4 5bb8ce8c7450 : 0.497324 s, 0.001209 s, -0.496115 s, × 0.002431
mozilla-try     x_revs_x_added_x_copies               092fcca11bdb 936255a0384a : 0.021800 s, 0.000618 s, -0.021182 s, × 0.028349
mozilla-try     x_revs_x00_added_x_copies             b53d2fadbdb5 017afae788ec : 0.229073 s, 0.001886 s, -0.227187 s, × 0.008233
mozilla-try     x_revs_x000_added_x000_copies         20408ad61ce5 6f0ee96e21ad : 1.102588 s, 0.087137 s, -1.015451 s, × 0.079030
mozilla-try     x_revs_x0000_added_x0000_copies       effb563bb7e5 c07a39dc4e80 : 2.199570 s, 0.133207 s, -2.066363 s, × 0.060560
mozilla-try     x000_revs_xx00_added_0_copies         6100d773079a 04a55431795e : 0.089106 s, 0.008727 s, -0.080379 s, × 0.097940
mozilla-try     x000_revs_x000_added_x_copies         9f17a6fc04f9 2d37b966abed : 0.734795 s, 0.006214 s, -0.728581 s, × 0.008457
mozilla-try     x000_revs_x000_added_x000_copies      1346fd0130e4 4c65cbdabc1f : 1.178338 s, 0.172554 s, -1.005784 s, × 0.146438
mozilla-try     x0000_revs_x_added_0_copies           63519bfd42ee a36a2a865d92 : 0.085815 s, 0.699683 s, +0.613868 s, × 8.42f59d
mozilla-try     x0000_revs_x_added_x_copies           9fe69ff0762d bcabf2a78927 : 0.083743 s, 0.679661 s, +0.595918 s, × 8.116034
mozilla-try     x0000_revs_xx000_added_x_copies       156f6e2674f2 4d0f2c178e66 : 7.436658 s, 0.188551 s, -7.248107 s, × 0.025354
mozilla-try     x0000_revs_xx000_added_0_copies       9eec5917337d 67118cc6dcad : 6.720923 s, 0.048500 s, -6.672423 s, × 0.007216
mozilla-try     x0000_revs_xx000_added_x000_copies    89294cd501d9 7ccb2fc7ccb5 : 7.608631 s, killed
mozilla-try     x0000_revs_x0000_added_x0000_copies   e928c65095ed e951f4ad123a : 9.776144 s, 4.960664 s, -4.815480 s, × 0.507425
mozilla-try     x00000_revs_x_added_0_copies          6a320851d377 1ebb79acd503 : 0.092731 s, killed
mozilla-try     x00000_revs_x00000_added_0_copies     dc8a3ca7010e d16fde900c9c : 26.871669 s, 1.362635 s, -25.509034 s, × 0.050709
mozilla-try     x00000_revs_x_added_x_copies          5173c4b6f97c 95d83ee7242d : 0.093964 s, killed
mozilla-try     x00000_revs_x000_added_x_copies       9126823d0e9c ca82787bb23c : 0.228070 s, killed
mozilla-try     x00000_revs_x0000_added_x0000_copies  8d3fafa80d4b eb884023b810 : 18.923626 s, 31.093527 s, +12.169901 s, × 1.643106
mozilla-try     x00000_revs_x00000_added_x0000_copies 1b661134e2ca 1ae03d022d6d : 21.398288 s, killed
mozilla-try     x00000_revs_x00000_added_x000_copies  9b2a99adc05e 8e29777b48e6 : 25.643015 s, killed
obfuscated-jane worst case                            9b3bd6a35837 fae875e6ab31 : 18.403117 s, killed
parent 10756eec1a24
No related branches found
No related tags found
1 merge request!55Draft: Topic/default/path copies rust
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment