[
https://issues.apache.org/jira/browse/THRIFT-3217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14612906#comment-14612906
]
Randy Abernethy commented on THRIFT-3217:
-----------------------------------------
I could not attribute any noticeable variation in performance between BE and LE
protocols.
I get about the same results as you did (ratiowise) with the provided benchmark
prog:
thrift@ubuntu:~/t2/lib/cpp/test$ ./Benchmark
Write big endian: 6253.51 kHz
Read big endian: 4101.72 kHz
Write little endian: 7454.67 kHz
Read little endian: 3944.28 kHz
However the slow first loop is likely due to cold cache. When I run the LE
first and the BE second the output looks about the same (first loop is slow).
I sanity tested with BE and BE and got the same result (first loop slow); then
with LE.and LE and got the same result (first loop slow)
When I preheat the cache (adding a preheating loop just like the first loop
followed by a TMemoryBuffer reset) I see parity across the runs in both LE
and BE.
thrift@ubuntu:~/t2/lib/cpp/test$ ./Benchmark
Write big endian: 7205.23 kHz
Read big endian: 3986.69 kHz
Write little endian: 7210.8 kHz
Read little endian: 3943.92 kHz
thrift@ubuntu:~/t2/lib/cpp/test$ ./Benchmark
Write big endian: 7247.9 kHz
Read big endian: 3990.68 kHz
Write little endian: 7414.92 kHz
Read little endian: 4002.96 kHz
thrift@ubuntu:~/t2/lib/cpp/test$ ./Benchmark
Write big endian: 7290.75 kHz
Read big endian: 3969.55 kHz
Write little endian: 7429.7 kHz
Read little endian: 4007.77 kHz
thrift@ubuntu:~/t2/lib/cpp/test$ ./Benchmark
Write big endian: 7223.86 kHz
Read big endian: 3928.78 kHz
Write little endian: 6812.92 kHz
Read little endian: 4008.93 kHz
thrift@ubuntu:~/t2/lib/cpp/test$ ./Benchmark
Write big endian: 7375.34 kHz
Read big endian: 3965.91 kHz
Write little endian: 7397.37 kHz
Read little endian: 4003.54 kHz
My guess is that the Intel BSWAP is too fast to notice.
> Provide a little endian variant of the binary protocol in C++
> -------------------------------------------------------------
>
> Key: THRIFT-3217
> URL: https://issues.apache.org/jira/browse/THRIFT-3217
> Project: Thrift
> Issue Type: Improvement
> Components: C++ - Library
> Affects Versions: 0.9.3
> Reporter: Ben Craig
> Assignee: Ben Craig
>
> Most computers these days are little endian. With Thrift's current binary
> protocol, we end up adjusting endianness on both sides of the connection most
> of the time. We should provide a variant that is optimized for the common
> case of little endian machines.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)