Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
I've extracted fastbinary.c TBinary implementation to a C++ class and added TCompact counter part.
It can be used in the same way as TBinaryProtocolAccelerated.
Note that it now requires C++ compiler but I don't think it affects anyone compiling Thrift Python module.
Here's a quick benchmark:
$ PYTHONPATH=lib/py/build/lib.linux-x86_64-2.7:test/py/gen-py \ test/py/FastbinaryTest.py Testing TBinaryAccelerated Starting Benchmarks HolyMoley Standard = 0.599830 HolyMoley Acceler. = 0.028437 FastStruct Standard = 0.151254 FastStruct Acceler. = 0.010000 Testing TCompactAccelerated Starting Benchmarks HolyMoley Standard = 1.200082 HolyMoley Acceler. = 0.029162 FastStruct Standard = 0.420377 FastStruct Acceler. = 0.012183
It's ~40x faster than pure python implementation, partly because pure-python TCompact is much slower than TBinary for some reason.
Attachments
Issue Links
- is duplicated by
-
THRIFT-496 Pure python reader/writer
- Closed