Commit 772b2b0
committed
Optimize bytearray % args
Issue python#25399: Don't create temporary bytes objects: modify _PyBytes_Format() to
create work directly on bytearray objects.
* Rename _PyBytes_Format() to _PyBytes_FormatEx() just in case if something
outside CPython uses it
* _PyBytes_FormatEx() now uses (char*, Py_ssize_t) for the input string, so
bytearray_format() doesn't need tot create a temporary input bytes object
* Add use_bytearray parameter to _PyBytes_FormatEx() which is passed to
_PyBytesWriter, to create a bytearray buffer instead of a bytes buffer
Most formatting operations are now between 2.5 and 5 times faster.1 parent 661aacc commit 772b2b0
3 files changed
Lines changed: 33 additions & 36 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
66 | 70 | | |
67 | 71 | | |
68 | 72 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
282 | 282 | | |
283 | 283 | | |
284 | 284 | | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
| 285 | + | |
289 | 286 | | |
290 | 287 | | |
291 | 288 | | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
305 | 293 | | |
306 | 294 | | |
307 | 295 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
568 | 568 | | |
569 | 569 | | |
570 | 570 | | |
571 | | - | |
| 571 | + | |
| 572 | + | |
572 | 573 | | |
573 | | - | |
| 574 | + | |
| 575 | + | |
574 | 576 | | |
575 | 577 | | |
576 | 578 | | |
577 | 579 | | |
578 | 580 | | |
579 | 581 | | |
580 | | - | |
| 582 | + | |
581 | 583 | | |
582 | 584 | | |
583 | 585 | | |
584 | | - | |
585 | | - | |
| 586 | + | |
| 587 | + | |
586 | 588 | | |
587 | 589 | | |
| 590 | + | |
588 | 591 | | |
589 | 592 | | |
590 | 593 | | |
591 | 594 | | |
592 | | - | |
| 595 | + | |
| 596 | + | |
593 | 597 | | |
594 | 598 | | |
595 | 599 | | |
| |||
613 | 617 | | |
614 | 618 | | |
615 | 619 | | |
616 | | - | |
617 | | - | |
618 | | - | |
619 | | - | |
| 620 | + | |
| 621 | + | |
620 | 622 | | |
621 | 623 | | |
622 | 624 | | |
| |||
644 | 646 | | |
645 | 647 | | |
646 | 648 | | |
647 | | - | |
| 649 | + | |
648 | 650 | | |
649 | 651 | | |
650 | 652 | | |
| |||
924 | 926 | | |
925 | 927 | | |
926 | 928 | | |
927 | | - | |
928 | | - | |
| 929 | + | |
929 | 930 | | |
930 | 931 | | |
931 | 932 | | |
| |||
1028 | 1029 | | |
1029 | 1030 | | |
1030 | 1031 | | |
1031 | | - | |
| 1032 | + | |
1032 | 1033 | | |
1033 | 1034 | | |
1034 | 1035 | | |
| |||
3233 | 3234 | | |
3234 | 3235 | | |
3235 | 3236 | | |
3236 | | - | |
| 3237 | + | |
3237 | 3238 | | |
3238 | | - | |
3239 | | - | |
3240 | | - | |
| 3239 | + | |
| 3240 | + | |
| 3241 | + | |
| 3242 | + | |
| 3243 | + | |
| 3244 | + | |
| 3245 | + | |
3241 | 3246 | | |
3242 | 3247 | | |
3243 | 3248 | | |
| |||
0 commit comments