markjm opened a new pull request, #3595:
URL: https://github.com/apache/thrift/pull/3595

   Hi - I figured I'd share a few perf optimizations we are using internally. 
We are still on an older thrift version (😢 ), so I did use some agent magic to 
port these to the head of this repo. My testing was primarily on my branch - in 
this case, for example, we only care about p3.12+, so i added some compat for 
when they added PyUnicode_AsUTF8AndSize in py3.3 (impressed the repo still 
suports py2!)
   
   This one is 1 of 3 PRs
   
   ---
   
   Use PyUnicode_AsUTF8AndSize when available, with a fallback for older Python 
3 releases, so UTF-8 strings can be encoded without allocating an intermediate 
PyBytes object.
   
   Performance (50k iterations, warmed)
   
   | Workload | Baseline | This commit | Speedup |
   |----------|----------|-------------|---------|
   | encode simple (30B, 1 string) | 0.60 us | 0.55 us | 1.09x | | encode 
10-string (182B) | 1.44 us | 1.01 us | 1.43x | | encode complex (395B) | 3.02 
us | 2.56 us | 1.18x |
   
   The more string fields a struct has, the larger the gain. Decode is 
unchanged.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to