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)

Reply via email to