Aki Sukegawa created THRIFT-3612:
------------------------------------
Summary: Add Python C extension for compact protocol
Key: THRIFT-3612
URL: https://issues.apache.org/jira/browse/THRIFT-3612
Project: Thrift
Issue Type: Improvement
Reporter: Aki Sukegawa
Assignee: Aki Sukegawa
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:
{code}
$ 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
{code}
It's ~40x faster than pure python implementation, partly because pure-python
TCompact is much slower than TBinary for some reason.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)