[reSIProcate] [reSIProcate-commit] resiprocate 9206 bcampen: Two changes that were somewhat tangled together, since they both used the same
Aron Rosenberg
arosenberg at logitech.com
Sun Jun 26 22:27:29 CDT 2011
Byron,
Does this change make it any easier to consistently be able to access the
NIT "request" SipMessage when processing a NIT "response"? Right now, when
dealing with NIT REFER's, if the REFER gets 4xx'ed, there is no easy way
that I can figure out to access the original Request so that we can extract
the original ReferTo header.
-Aron
Aron Rosenberg
Sr. Director, Engineering,
LifeSize, a division of Logitech
On Sat, Jun 25, 2011 at 1:14 PM, <svn at resiprocate.org> wrote:
> Projectresiprocate New Revision9206<http://svn.resiprocate.org/viewsvn/resiprocate?view=rev&rev=9206>
> Committerbcampen (Byron Campen) Date2011-06-25 15:14:49 -0500 (Sat, 25 Jun
> 2011) Log
>
> Two changes that were somewhat tangled together, since they both used the same
> refactoring of the Transport SendData code.
>
> 1) State shedding modifications to TransactionState
>
> In a number of cases, we were preserving state (in the form of SipMessages
> and DnsResults) in cases where we did not really need them any more. For
> example, once we have transmitted a response, there is no need
> to preserve the full SipMessage for this response (the raw retransmit buffer
> is sufficient). Also, INVITE requests do not need to be maintained once
> a final response comes in (since there is no possibility that we'll need to
> send a simulated 408 or 503 to the TU, nor will we need to construct a CANCEL
> request using the INVITE, nor will we need to retransmit). Similarly, once we
> have received a final response for a NIT transaction, we no longer need to
> maintain the original request or the retransmit buffer. Lastly, if we are
> using a reliable transport, we do not need to maintain retransmit buffers
> (although we may need to maintain full original requests for simulated
> responses and such).
>
> This change has basically no impact on reliable NIT performance, but a huge
> impact on non-reliable and INVITE performance. Prior to this change, either
> NIT UDP or INVITE TCP testStack would exhaust main memory on my laptop (with
> 4GB of main memory), bringing progress to a complete halt on runs longer than
> 15 seconds or so. I did not bother trying INVITE UDP, but that works now too.
>
> 2) Reduction in buffer reallocations while encoding a SipMessage
>
> TransportSelector now keeps a moving average of the outgoing message size,
> which is used to preallocate the buffers into which SipMessages are encoded.
>
> This ends up making a small difference in testStack when linked against google
> malloc, but a larger difference when linked against OS X's (horrible) standard
> malloc.
>
>
>
>
>
> Modified:
>
> - branches/b-TKLC-perf_work/resip/stack/InternalTransport.cxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/InternalTransport.cxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/InternalTransport.hxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/InternalTransport.hxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/SendData.hxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/SendData.hxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/SipMessage.cxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/SipMessage.cxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/SipMessage.hxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/SipMessage.hxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/StatisticsManager.cxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/StatisticsManager.cxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/StatisticsManager.hxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/StatisticsManager.hxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/TransactionState.cxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/TransactionState.cxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/TransactionState.hxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/TransactionState.hxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/Transport.cxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/Transport.cxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/Transport.hxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/Transport.hxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/TransportSelector.cxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/TransportSelector.cxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/TransportSelector.hxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/TransportSelector.hxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/UdpTransport.hxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/UdpTransport.hxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/test/testConnectionBase.cxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/test/testConnectionBase.cxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/test/testTcp.cxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/test/testTcp.cxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/resip/stack/test/testUdp.cxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/resip/stack/test/testUdp.cxx?r1=9205&r2=9206&diff_format=l>
> - branches/b-TKLC-perf_work/tfm/TestSipEndPoint.cxx
> <http://svn.resiprocate.org/viewsvn/resiprocate/branches/b-TKLC-perf_work/tfm/TestSipEndPoint.cxx?r1=9205&r2=9206&diff_format=l>
>
>
> _______________________________________________
> resiprocate-commit mailing list
> resiprocate-commit at resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-commit
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20110626/5e1865dd/attachment.htm>
More information about the resiprocate-devel
mailing list