Loading ...
Sorry, an error occurred while loading the content.

Re: [soaplite] help with performance issues

Expand Messages
  • Jay A. Kreibich
    ... It might be worth testing this. If you can setup a function that just returns it s arguments, you can firmly establish if this is a serializer issue or a
    Message 1 of 4 , Jul 10, 2006
    • 0 Attachment
      On Mon, Jul 10, 2006 at 02:25:32PM -0000, Andrew Hicox scratched on the wall:
      > Hello everyone:
      >
      > I'm running an apache 1.3.* server with mod_ssl, mod_perl &
      > SOAP::Lite, and I seem to be hitting a wall in terms of performance.
      > Granted, I'm passing some really complex structures into and out of my
      > functions, but I'm seeing fairly consistent response times of around 9
      > and a half seconds, which is just well ... really long.

      > Doing some further debugging, I'm seeing the delay in the dispatch/xml
      > parsing stage burried somewhere in SOAP::Lite's guts. That is, I don't
      > belive that what I'm doing inside the distpatched-to function is
      > really making that much of an impact in terms of performance. The bulk
      > of the delay seems to occur between receipt of the request by apache
      > and the time that the dispatched function is reached.

      It might be worth testing this. If you can setup a function that
      just returns it's arguments, you can firmly establish if this is a
      serializer issue or a function issue.

      > Performance seems to dramatically increase when I pass structures with
      > leafs no more than two levels deep. Specifically, structures like
      > "list of lists" or "hash of lists" seem to cause the most problems. In
      > any case, changing the structures that the functions pass is kind of
      > out of the question for me at this point in my project.

      Which XML parser are you using? XML::Parser or XML::Parser::Lite?
      If you're using ::Lite (included in the SOAP::Lite distribution),
      you might want to switch to a full install of XML::Parser with the
      expat binary libs behind it. I've little experience with the ::Lite
      version, but given how it works, it would not surprised me if it has
      performance issues with very large or complex structures.

      -j

      --
      Jay A. Kreibich | CommTech, Emrg Net Tech Svcs
      jak@... | Campus IT & Edu Svcs
      <http://www.uiuc.edu/~jak> | University of Illinois at U/C
    • Andrew Hicox
      Jay, thank you! I was unaware that one could choose which xml parser package to use. I have the expat based XML::Parser installed already, how do I instruct
      Message 2 of 4 , Jul 10, 2006
      • 0 Attachment
        Jay, thank you!

        I was unaware that one could choose which xml parser package to use.
        I have the expat based XML::Parser installed already, how do I instruct
        SOAP::Lite to use it instead of XML::Parser::Lite?

        thank you again,

        -Andrew

        On Jul 10, 2006, at 11:33 AM, Jay A. Kreibich wrote:

        > On Mon, Jul 10, 2006 at 02:25:32PM -0000, Andrew Hicox scratched on
        > the wall:
        >> Hello everyone:
        >>
        >> I'm running an apache 1.3.* server with mod_ssl, mod_perl &
        >> SOAP::Lite, and I seem to be hitting a wall in terms of performance.
        >> Granted, I'm passing some really complex structures into and out of my
        >> functions, but I'm seeing fairly consistent response times of around 9
        >> and a half seconds, which is just well ... really long.
        >
        >> Doing some further debugging, I'm seeing the delay in the dispatch/xml
        >> parsing stage burried somewhere in SOAP::Lite's guts. That is, I don't
        >> belive that what I'm doing inside the distpatched-to function is
        >> really making that much of an impact in terms of performance. The bulk
        >> of the delay seems to occur between receipt of the request by apache
        >> and the time that the dispatched function is reached.
        >
        > It might be worth testing this. If you can setup a function that
        > just returns it's arguments, you can firmly establish if this is a
        > serializer issue or a function issue.
        >
        >> Performance seems to dramatically increase when I pass structures with
        >> leafs no more than two levels deep. Specifically, structures like
        >> "list of lists" or "hash of lists" seem to cause the most problems. In
        >> any case, changing the structures that the functions pass is kind of
        >> out of the question for me at this point in my project.
        >
        > Which XML parser are you using? XML::Parser or XML::Parser::Lite?
        > If you're using ::Lite (included in the SOAP::Lite distribution),
        > you might want to switch to a full install of XML::Parser with the
        > expat binary libs behind it. I've little experience with the ::Lite
        > version, but given how it works, it would not surprised me if it has
        > performance issues with very large or complex structures.
        >
        > -j
        >
        > --
        > Jay A. Kreibich | CommTech, Emrg Net Tech Svcs
        > jak@... | Campus IT & Edu Svcs
        > <http://www.uiuc.edu/~jak> | University of Illinois at U/C
        >
        >
        Andrew N. Hicox
        Hicox Information Systems LLC
        Manassas, VA USA
        http://hicox.com
        andrew@...
        703-367-9085
      • Jay A. Kreibich
        ... I m fairly sure that if SOAP::Lite can find XML::Parser, it will automatically use it. XML::Parser::Lite is only used as a fall-back. Someone with a
        Message 3 of 4 , Jul 10, 2006
        • 0 Attachment
          On Mon, Jul 10, 2006 at 01:04:28PM -0400, Andrew Hicox scratched on the wall:
          > Jay, thank you!
          >
          > I was unaware that one could choose which xml parser package to use.
          > I have the expat based XML::Parser installed already, how do I instruct
          > SOAP::Lite to use it instead of XML::Parser::Lite?

          I'm fairly sure that if SOAP::Lite can find XML::Parser, it will
          automatically use it. XML::Parser::Lite is only used as a fall-back.

          Someone with a better understanding of the internals of SOAP::Lite
          might chime in on this, however.

          In that case, the only thing would be to verify that XML::Parser and
          expat is installed somewhere SOAP::Lite is going to find it and
          correctly import it. With mod_perl that's sometimes a bit tricky,
          but if things are installed in the default places, it should work.

          -j

          --
          Jay A. Kreibich | CommTech, Emrg Net Tech Svcs
          jak@... | Campus IT & Edu Svcs
          <http://www.uiuc.edu/~jak> | University of Illinois at U/C
        Your message has been successfully submitted and would be delivered to recipients shortly.