Message252599
Attached patch modifies unicode escape and raw unicode escape encoders to use the new _PyBytesWriter API.
The patch is optimized to encode Latin1 characters: encoding Latin1 characters when no character is escaped should not have to call _PyByte_Resize() at all.
When characters are escaped or a BMP or non-BMP string is encoded, overallocation is used to reduce the number of _PyByte_Resize(). It uses _PyBytesWriter overallocation strategy instead of always overallocate for the worst case.
_PyBytesWriter also embeds a small buffer allocated on the stack which also avoids calls to _PyBytes_Resize() when the output fits into 512 bytes. |
|
Date |
User |
Action |
Args |
2015-10-09 12:13:42 | vstinner | set | recipients:
+ vstinner, serhiy.storchaka |
2015-10-09 12:13:42 | vstinner | set | messageid: <1444392822.73.0.0714587534509.issue25353@psf.upfronthosting.co.za> |
2015-10-09 12:13:42 | vstinner | link | issue25353 messages |
2015-10-09 12:13:42 | vstinner | create | |
|