Skip to content
Snippets Groups Projects
  • Russell Bryant's avatar
    f7e71616
    Merge team/russell/frame_caching · f7e71616
    Russell Bryant authored
    There are some situations in Asterisk where ast_frame and/or iax_frame
    structures are rapidly allocatted and freed (at least 50 times per second
    for one call).
    
    This code significantly improves the performance of ast_frame_header_new(), 
    ast_frdup(), ast_frfree(), iax_frame_new(), and iax_frame_free() by keeping
    a thread-local cache of these structures and using frames from the cache 
    whenever possible instead of calling malloc/free every time.
    
    This commit also converts the ast_frame and iax_frame structures to use the
    linked list macros.
    
    
    git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41278 65c4cc65-6c06-0410-ace0-fbb531ad65f3
    f7e71616
    History
    Merge team/russell/frame_caching
    Russell Bryant authored
    There are some situations in Asterisk where ast_frame and/or iax_frame
    structures are rapidly allocatted and freed (at least 50 times per second
    for one call).
    
    This code significantly improves the performance of ast_frame_header_new(), 
    ast_frdup(), ast_frfree(), iax_frame_new(), and iax_frame_free() by keeping
    a thread-local cache of these structures and using frames from the cache 
    whenever possible instead of calling malloc/free every time.
    
    This commit also converts the ast_frame and iax_frame structures to use the
    linked list macros.
    
    
    git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41278 65c4cc65-6c06-0410-ace0-fbb531ad65f3