Uploaded image for project: 'Qpid Dispatch'
  1. Qpid Dispatch
  2. DISPATCH-2251

optimize qd_compose_insert_string_iterator

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Trivial
    • Resolution: Fixed
    • 1.17.0
    • 1.18.0
    • Router Node
    • None

    Description

      Analysis of perf data for the receive path of a inter-router connection downstream router shows that qd_compose_insert_string_iterator calls are expensive.   This is due to the way qd_compose_insert_string_iterator copies data from the iterator: byte by byte.

      Refactoring qd_compose_insert_string_iterator to use qd_iterator_copy and qd_compose_insert_string_n will leverage memmove semantics and will improve performance (see attached flamegraphs: 134462 current vs 38506 w/optimization)

      Attachments

        1. qdr_perf_worker_134462_134462.svg
          501 kB
          Ken Giusti
        2. qdr_perf_worker_38506_38506.svg
          377 kB
          Ken Giusti

        Activity

          People

            kgiusti Ken Giusti
            kgiusti Ken Giusti
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: