Repository navigation
Commit c3a06df
committed
pythongh-119396: Optimize %S format of PyUnicode_FromFormat()
Add fast paths for str, int and float object types.
Benchmark on %S and %R formats:
+----------------+--------+----------------------+
| Benchmark | ref | change |
+================+========+======================+
| str() | 654 ns | 556 ns: 1.18x faster |
+----------------+--------+----------------------+
| repr() | 722 ns | 627 ns: 1.15x faster |
+----------------+--------+----------------------+
| Geometric mean | (ref) | 1.16x faster |
+----------------+--------+----------------------+1 parent d472b4f commit c3a06df
1 file changed
Lines changed: 78 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2325 | 2325 | | |
2326 | 2326 | | |
2327 | 2327 | | |
| 2328 | + | |
| 2329 | + | |
| 2330 | + | |
| 2331 | + | |
| 2332 | + | |
| 2333 | + | |
| 2334 | + | |
| 2335 | + | |
| 2336 | + | |
| 2337 | + | |
| 2338 | + | |
| 2339 | + | |
| 2340 | + | |
| 2341 | + | |
| 2342 | + | |
| 2343 | + | |
| 2344 | + | |
| 2345 | + | |
| 2346 | + | |
| 2347 | + | |
| 2348 | + | |
| 2349 | + | |
| 2350 | + | |
| 2351 | + | |
| 2352 | + | |
| 2353 | + | |
| 2354 | + | |
| 2355 | + | |
| 2356 | + | |
| 2357 | + | |
| 2358 | + | |
| 2359 | + | |
| 2360 | + | |
| 2361 | + | |
| 2362 | + | |
| 2363 | + | |
| 2364 | + | |
| 2365 | + | |
| 2366 | + | |
| 2367 | + | |
| 2368 | + | |
| 2369 | + | |
| 2370 | + | |
| 2371 | + | |
| 2372 | + | |
| 2373 | + | |
| 2374 | + | |
| 2375 | + | |
| 2376 | + | |
| 2377 | + | |
| 2378 | + | |
2328 | 2379 | | |
2329 | 2380 | | |
2330 | 2381 | | |
| |||
2747 | 2798 | | |
2748 | 2799 | | |
2749 | 2800 | | |
2750 | | - | |
2751 | 2801 | | |
2752 | | - | |
2753 | | - | |
2754 | | - | |
2755 | | - | |
| 2802 | + | |
| 2803 | + | |
| 2804 | + | |
| 2805 | + | |
| 2806 | + | |
| 2807 | + | |
| 2808 | + | |
| 2809 | + | |
| 2810 | + | |
| 2811 | + | |
| 2812 | + | |
| 2813 | + | |
| 2814 | + | |
2756 | 2815 | | |
2757 | | - | |
2758 | 2816 | | |
2759 | | - | |
2760 | 2817 | | |
2761 | 2818 | | |
2762 | 2819 | | |
2763 | 2820 | | |
2764 | 2821 | | |
2765 | 2822 | | |
2766 | | - | |
2767 | 2823 | | |
2768 | | - | |
2769 | | - | |
2770 | | - | |
2771 | | - | |
| 2824 | + | |
| 2825 | + | |
| 2826 | + | |
| 2827 | + | |
| 2828 | + | |
| 2829 | + | |
| 2830 | + | |
| 2831 | + | |
| 2832 | + | |
| 2833 | + | |
| 2834 | + | |
| 2835 | + | |
| 2836 | + | |
| 2837 | + | |
2772 | 2838 | | |
2773 | | - | |
2774 | 2839 | | |
2775 | | - | |
2776 | 2840 | | |
2777 | 2841 | | |
2778 | 2842 | | |
| |||
0 commit comments