[issue16334] Faster unicode-escape and raw-unicode-escape codecs
Serhiy Storchaka
report at bugs.python.org
Wed Sep 7 04:51:02 EDT 2016
Serhiy Storchaka added the comment:
Thanks Victor! I benchmarked your patch. There is no regression in comparison with my patch. In few cases your patch is even faster!
Unpatched Patch v.4 Patch v.5
148 (+76%) 235 (+11%) 260 decode unicode-escape 'A'*10000
197 (+30%) 257 (+0%) 257 decode unicode-escape '\x80'*10000
195 (+32%) 232 (+11%) 258 decode unicode-escape '\x80'+'A'*9999
227 (+39%) 308 (+2%) 315 decode unicode-escape '\u0100'*10000
197 (+56%) 241 (+27%) 307 decode unicode-escape '\u0100'+'A'*9999
201 (+35%) 264 (+3%) 271 decode unicode-escape '\u0100'+'\x80'*9999
227 (+39%) 308 (+2%) 315 decode unicode-escape '\u8000'*10000
197 (+56%) 241 (+27%) 307 decode unicode-escape '\u8000'+'A'*9999
201 (+35%) 264 (+3%) 271 decode unicode-escape '\u8000'+'\x80'*9999
227 (+39%) 308 (+2%) 315 decode unicode-escape '\u8000'+'\u0100'*9999
200 (+26%) 245 (+2%) 251 decode unicode-escape '\U00010000'*10000
192 (+38%) 230 (+15%) 265 decode unicode-escape '\U00010000'+'A'*9999
167 (+26%) 203 (+4%) 211 decode unicode-escape '\U00010000'+'\x80'*9999
194 (+31%) 248 (+2%) 254 decode unicode-escape '\U00010000'+'\u0100'*9999
194 (+31%) 247 (+3%) 254 decode unicode-escape '\U00010000'+'\u8000'*9999
197 (+9%) 214 (+0%) 215 decode raw-unicode-escape 'A'*10000
197 (+9%) 214 (+0%) 214 decode raw-unicode-escape '\x80'*10000
197 (+9%) 214 (+0%) 214 decode raw-unicode-escape '\x80'+'A'*9999
216 (+68%) 365 (-1%) 363 decode raw-unicode-escape '\u0100'*10000
181 (+43%) 262 (-1%) 259 decode raw-unicode-escape '\u0100'+'A'*9999
181 (+43%) 264 (-2%) 258 decode raw-unicode-escape '\u0100'+'\x80'*9999
216 (+68%) 365 (-1%) 363 decode raw-unicode-escape '\u8000'*10000
181 (+43%) 261 (-1%) 259 decode raw-unicode-escape '\u8000'+'A'*9999
181 (+43%) 263 (-2%) 258 decode raw-unicode-escape '\u8000'+'\x80'*9999
216 (+68%) 365 (-1%) 363 decode raw-unicode-escape '\u8000'+'\u0100'*9999
245 (+29%) 313 (+1%) 315 decode raw-unicode-escape '\U00010000'*10000
211 (+10%) 195 (+19%) 232 decode raw-unicode-escape '\U00010000'+'A'*9999
211 (+10%) 195 (+19%) 233 decode raw-unicode-escape '\U00010000'+'\x80'*9999
192 (+51%) 287 (+1%) 289 decode raw-unicode-escape '\U00010000'+'\u0100'*9999
192 (+51%) 287 (+1%) 289 decode raw-unicode-escape '\U00010000'+'\u8000'*9999
269 (+73%) 424 (+10%) 465 encode unicode-escape 'A'*10000
266 (+108%) 591 (-6%) 553 encode unicode-escape '\x80'*10000
298 (+55%) 423 (+9%) 463 encode unicode-escape '\x80'+'A'*9999
358 (+93%) 695 (-0%) 692 encode unicode-escape '\u0100'*10000
190 (+13%) 215 (+0%) 215 encode unicode-escape '\u0100'+'A'*9999
235 (+109%) 520 (-5%) 492 encode unicode-escape '\u0100'+'\x80'*9999
342 (+102%) 695 (-1%) 691 encode unicode-escape '\u8000'*10000
190 (+13%) 215 (+0%) 215 encode unicode-escape '\u8000'+'A'*9999
235 (+109%) 520 (-5%) 492 encode unicode-escape '\u8000'+'\x80'*9999
367 (+89%) 698 (-1%) 694 encode unicode-escape '\u8000'+'\u0100'*9999
531 (+124%) 915 (+30%) 1190 encode unicode-escape '\U00010000'*10000
196 (+20%) 235 (+0%) 236 encode unicode-escape '\U00010000'+'A'*9999
237 (+104%) 506 (-4%) 484 encode unicode-escape '\U00010000'+'\x80'*9999
325 (+111%) 681 (+1%) 687 encode unicode-escape '\U00010000'+'\u0100'*9999
325 (+117%) 681 (+3%) 704 encode unicode-escape '\U00010000'+'\u8000'*9999
578 (+853%) 5672 (-3%) 5507 encode raw-unicode-escape 'A'*10000
578 (+731%) 4761 (+1%) 4806 encode raw-unicode-escape '\x80'*10000
581 (+760%) 5218 (-4%) 4995 encode raw-unicode-escape '\x80'+'A'*9999
365 (+96%) 714 (+0%) 714 encode raw-unicode-escape '\u0100'*10000
226 (+72%) 389 (+0%) 389 encode raw-unicode-escape '\u0100'+'A'*9999
226 (+72%) 389 (+0%) 389 encode raw-unicode-escape '\u0100'+'\x80'*9999
373 (+91%) 715 (-0%) 714 encode raw-unicode-escape '\u8000'*10000
226 (+72%) 389 (+0%) 389 encode raw-unicode-escape '\u8000'+'A'*9999
226 (+72%) 389 (+0%) 389 encode raw-unicode-escape '\u8000'+'\x80'*9999
366 (+96%) 718 (+0%) 719 encode raw-unicode-escape '\u8000'+'\u0100'*9999
537 (+110%) 879 (+28%) 1128 encode raw-unicode-escape '\U00010000'*10000
214 (+37%) 293 (+0%) 294 encode raw-unicode-escape '\U00010000'+'A'*9999
214 (+37%) 293 (+0%) 294 encode raw-unicode-escape '\U00010000'+'\x80'*9999
342 (+96%) 669 (+0%) 669 encode raw-unicode-escape '\U00010000'+'\u0100'*9999
342 (+96%) 669 (+0%) 669 encode raw-unicode-escape '\U00010000'+'\u8000'*9999
Could you please add NEWS and What's New entries?
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue16334>
_______________________________________
More information about the Python-bugs-list
mailing list