< Previous by Date | Date Index | Next by Date > |
< Previous in Thread | Thread Index | Next in Thread > |
Hi Justin, Thanks for kick starting this again. I think if your “fast-stream” modifications are controlled via a
define, and off by default (for now), then it’s a good idea to move the branch into
main. It will make it easier for people to evaluate and play with, since it
appears the branch approach didn’t really work. ; ) Scott From: resiprocate-devel-bounces@xxxxxxxxxxxxxxx
[mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxx] On Behalf Of Justin
Matthews A
while back I posted on how the performance of resip could be improved by
replacing the STL streams library on Windows and Linux/others. I believe
that this is still a worthwhile enhancement to the project and would like to
propose a first step in moving toward a faster encoding mechanism in
resip. Step
1 would be to replace all occurrences of std::ostream that relate to encoding
with a typedef (used as a simple placeholder for now). This would later
be defined as a custom encoder. Example: typedef std::ostream
resip::EncodeStream. Any
comments/objections to this change? Thanks, -justin From: Justin Matthews
[mailto:] After
integrating the resip stack into our application, initial profiling showed that
we could improve performance significantly by replacing the STL streams classes
that are used for encoding SipMessage objects. The
code is checked in under branches/b-jmatthewsr-streamperf. Note that at
this time only the default settings for ./configure should be used and repro is
currently excluded from the build. The
data below shows (on win32) a 30-40% overall CPU reduction when running our
application with the STL alternative and a 5-6x factor improvement running the
stand alone encoder test. Note that although the CPU usage is relatively
low, under heavier call load the significance of the STL alternative becomes
greater. I
would really appreciate some feedback from running the stand-alone test apps
(STL vs alternative) on additional windows hardware as well as true Linux (not
running under virtual machine)/unix/osx machines. I have binaries for win32 and
for linux (fedora 5) that I can send on request. To build the test app in
the branch define/undefine RESIP_USE_STL_STREAMS in
rutil/resipfaststreams.h. The test app is under
resip/stack/test/testSipMsgEncode.cxx. Thanks, -Justin Running
the test app with args: test.exe -r 500000
|