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)