[issue32880] IDLE: Fix and update and cleanup pyparse

Cheryl Sabella report at bugs.python.org
Sat Feb 24 14:06:56 EST 2018


Cheryl Sabella <chekat2 at gmail.com> added the comment:

For msg312474 regarding replace vs re.

Running the 20,000 copy version of the translated text (only translating once gives the following timings:
copies: 20000   translate time: 5.591020822525024
copies: 20000   translate time: 5.5614333152771
copies: 20000   translate time: 5.561311483383179
copies: 20000   translate time: 5.558183670043945
copies: 20000   translate time: 5.580726385116577
copies: 20000   translate time: 5.588990688323975
copies: 20000   translate time: 5.570690155029297
copies: 20000   translate time: 5.601408004760742
copies: 20000   translate time: 5.76714825630188
copies: 20000   translate time: 5.697475910186768

And the re version gives:
copies: 20000   translate time: 5.935032844543457
copies: 20000   translate time: 5.939348220825195
copies: 20000   translate time: 5.933218240737915
copies: 20000   translate time: 6.070481538772583
copies: 20000   translate time: 6.319685935974121
copies: 20000   translate time: 6.4209065437316895
copies: 20000   translate time: 6.476579666137695
copies: 20000   translate time: 6.520790100097656
copies: 20000   translate time: 6.541554927825928
copies: 20000   translate time: 6.620612859725952

So, it's a little slower on a big string.  It also gives slightly different results because of the last replace:
code.replace('\nx', '\n')  isn't in the re.

On a more practical size document, they are about the same:
replace:
copies: 20   translate time: 0.0058782100677490234
copies: 20   translate time: 0.006024599075317383
copies: 20   translate time: 0.0056345462799072266
copies: 20   translate time: 0.005848884582519531
copies: 20   translate time: 0.005696296691894531
copies: 20   translate time: 0.00574946403503418
copies: 20   translate time: 0.005642890930175781
copies: 20   translate time: 0.005755901336669922
copies: 20   translate time: 0.0058023929595947266
copies: 20   translate time: 0.005713939666748047

re:
copies: 20   translate time: 0.005833148956298828
copies: 20   translate time: 0.005682229995727539
copies: 20   translate time: 0.00565028190612793
copies: 20   translate time: 0.005823850631713867
copies: 20   translate time: 0.0057680606842041016
copies: 20   translate time: 0.0058100223541259766
copies: 20   translate time: 0.005717277526855469
copies: 20   translate time: 0.005885601043701172
copies: 20   translate time: 0.005852460861206055
copies: 20   translate time: 0.005867958068847656

It appears the time for the replace is linear and the re is just a little more than linear.  Maybe it's just my computer.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue32880>
_______________________________________


More information about the Python-bugs-list mailing list