[Xapian-tickets] [Xapian] #782: Improve encode_length() performance

Xapian nobody at xapian.org
Thu Apr 25 17:11:56 BST 2019


#782: Improve encode_length() performance
-----------------------------------+------------------
        Reporter:  Kronuz          |      Owner:  olly
            Type:  enhancement     |     Status:  new
        Priority:  normal          |  Milestone:
       Component:  Backend-Remote  |    Version:
        Severity:  minor           |   Keywords:
      Blocked By:                  |   Blocking:
Operating System:  All             |
-----------------------------------+------------------
 One major bottleneck during some profiling I've been doing when using the
 remote protocol is in `Document::serialise()`. Remote protocol uses
 serialization '''a lot''', and serializers use `encode_length()` pretty
 much everywhere... however current implementation of `encode_length` could
 be improved to be more performant.

 I've re-implemented the function and I've opened pull request at
 https://github.com/xapian/xapian/pull/239.

 Benchmarking results are as follow:

 {{{
 2019-04-25 11:06:05
 Running ./benchmark-encode_length
 Run on (4 X 3000 MHz CPU s)
 CPU Caches:
   L1 Data 32K (x2)
   L1 Instruction 32K (x2)
   L2 Unified 262K (x2)
   L3 Unified 4194K (x1)
 -----------------------------------------------------------------
 Benchmark                          Time           CPU Iterations
 -----------------------------------------------------------------
 BM_EncodeLength_Original        1684 ns       1681 ns     414721
 BM_EncodeLength_Optimized        505 ns        504 ns    1341330
 }}}

 Attached is the benchmarking code I used.

--
Ticket URL: <https://trac.xapian.org/ticket/782>
Xapian <https://xapian.org/>
Xapian



More information about the Xapian-tickets mailing list