[Bug 754189] New: payloaders: memory performance

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Aug 27 09:55:41 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=754189

            Bug ID: 754189
           Summary: payloaders: memory performance
    Classification: Platform
           Product: GStreamer
           Version: 1.5.2
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: mparisdiaz at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Hello,
I have done some profiling about some payloaders and I have realized that an
important CPU percentage is used for memory management:
 1 - allocating and freeing RTP buffers
 2 - mapping/unmapping  RTP buffers

Possible solutions to improve efficiency:
 1 - Could we use a kind of buffer pool instead of creating new buffers and
freeing again and again?
 2 - Could be a way of improve mapping/unmapping of RTP buffers?


---- PROFILE REPORT ----

VP8 payloader:
gst-launch-1.5 videotestsrc num-buffers=100 ! vp8enc ! rtpvp8pay ! fakesink
enable-last-sample=false

Percentages of usage (with gst_rtp_base_payload_chain as root):
100 - gst_rtp_base_payload_chain (ir per call: 15283)
  98.67 - gst_rtp_vp8_pay_handle_buffer
    7.29 - gst_buffer_copy_region
    4.18 - gst_buffer_append
    29.67 - gst_rtp_vp8_create_header_buffer
      17.94 - gst_rtp_buffer_new_allocate
        14.57 - gst_rtp_buffer_allocate_data
        3.16 - gst_buffer_new
    35.24 - gst_rtp_base_payload_push_list
      8.96 - gst_rtp_base_payload_prepare_push
        6.65 - set_headers
          4.24 - gst_rtp_buffer_map
          1.42 - gst_rtp_buffer_unmap
      22.41 - gst_base_sink_chain_list
        12.38 - gst_mini_object_unref
          7.13 - _gst_buffer_list_free
          3.94 - _gst_buffer_free

OPUS payloader
gst-launch-1.5 audiotestsrc num-buffers=1000 ! opusenc ! rtpopuspay ! fakesink
enable-last-sample=false

Percentages of usage (with gst_rtp_base_payload_chain as root):
100 - gst_rtp_base_payload_chain
  96.62 - gst_rtp_opus_pay_handle_buffer
    8.38 - gst_buffer_append
    22.56 - gst_rtp_buffer_new_allocate
      16,83 - gst_rtp_buffer_allocate_data
      5.31 - gst_buffer_new
    63.42 - gst_rtp_base_payload_push
      16.40 - gst_rtp_base_payload_prepare_push
        12.98 - set_headers
          8.04 - gst_rtp_buffer_map
          2.92 - gst_rtp_buffer_unmap
      37.62 - gst_base_sink_chain
        20.98 - gst_mini_object_unref
          18.97 - _gst_buffer_free

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list