You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by David Lloyd <ll...@adam.com.au> on 2007/01/30 07:18:24 UTC

[Betwixt] Performance Issue

Hi There,


I have a set of nested classes which model a payment transaction. The 
nesting is like this:

  Transaction

    - OrderInformation
      - CustomerCredentials
    - MerchantCredentials
    - PaymentInformation

They're fairly standard classes and contain nothing more complex than 
standard String and Integers (int and String).

Running the class through "Betwixt" to make XML gives me:

<Transaction>
  <OrderInformation>
   etc etc

...as you'd expect. It's not a large file; there's no attributes apart 
from the "version = '1.0'" on the <?xml ?> prolog. The file's about 30 
lines long.

The setup I am running under is this:

  Sun Java Application Server running a Java EE web service
  Paste the output of the XML above into the ?Tester application
  Wait to see what result I get

I've tested the results and if I deliberately do something silly, 
Betwixt throws an appropriate error. It's not its error handling that 
worries me.

It takes SJAS, Betwixt or my Java about 15-30 seconds to process the 
XML. Whilst I understand that Betwixt uses Java introspection and quite 
possibly does a _lot_ of XML processing, processing a simple payment 
transaction set of classes shouldn't, in my opinion, take so long.

As to the hardware I'm running this on:

  Sun Solaris Community Express (ON 54)
  Sun Java 1.5.0_08
  Intel Pentium D945 / 2Gb of RAM

  - The Global Zone can use all memory and all CPU and has at least 1/2 a
    gig of memory free at all times during the tests

  - During processing, the two cores go to minimum of 70% usage

  - CPU fans start to spin but there does appear to be minor disk usage
    when the test is going
    - this appears as swap, which in Solaris means that /tmp is
      overflowing or memory use has a very sudden spike
    - it doesn't appear to be "seriously" excessive

  - vmstat, iostat don't show anything too bizarre whilst test runs

I probably need to be more precise but does thirty seconds for Betwixt 
to parse a set of nested classes each with an avg. of 4 fields each 
sound a little excessive, given the hardware and OS I've described?

DSL

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Re: [Betwixt] Performance Issue

Posted by robert burrell donkin <ro...@blueyonder.co.uk>.
On Tue, 2007-01-30 at 16:48 +1030, David Lloyd wrote:
> Hi There,
> 
> 
> I have a set of nested classes which model a payment transaction. The 
> nesting is like this:
> 
>   Transaction
> 
>     - OrderInformation
>       - CustomerCredentials
>     - MerchantCredentials
>     - PaymentInformation
> 
> They're fairly standard classes and contain nothing more complex than 
> standard String and Integers (int and String).
> 
> Running the class through "Betwixt" to make XML gives me:
> 
> <Transaction>
>   <OrderInformation>
>    etc etc
> 
> ...as you'd expect. It's not a large file; there's no attributes apart 
> from the "version = '1.0'" on the <?xml ?> prolog. The file's about 30 
> lines long.
> 
> The setup I am running under is this:
> 
>   Sun Java Application Server running a Java EE web service
>   Paste the output of the XML above into the ?Tester application
>   Wait to see what result I get
> 
> I've tested the results and if I deliberately do something silly, 
> Betwixt throws an appropriate error. It's not its error handling that 
> worries me.
> 
> It takes SJAS, Betwixt or my Java about 15-30 seconds to process the 
> XML. Whilst I understand that Betwixt uses Java introspection and quite 
> possibly does a _lot_ of XML processing, processing a simple payment 
> transaction set of classes shouldn't, in my opinion, take so long.
> 
> As to the hardware I'm running this on:
> 
>   Sun Solaris Community Express (ON 54)
>   Sun Java 1.5.0_08
>   Intel Pentium D945 / 2Gb of RAM
> 
>   - The Global Zone can use all memory and all CPU and has at least 1/2 a
>     gig of memory free at all times during the tests
> 
>   - During processing, the two cores go to minimum of 70% usage
> 
>   - CPU fans start to spin but there does appear to be minor disk usage
>     when the test is going
>     - this appears as swap, which in Solaris means that /tmp is
>       overflowing or memory use has a very sudden spike
>     - it doesn't appear to be "seriously" excessive
> 
>   - vmstat, iostat don't show anything too bizarre whilst test runs
> 
> I probably need to be more precise but does thirty seconds for Betwixt 
> to parse a set of nested classes each with an avg. of 4 fields each 
> sound a little excessive, given the hardware and OS I've described?

definitely

any chance of contributing some test code that you're happy to see made
public (obvious not the stuff you're working on but something similar
which exhibits the same issue)...?

(please post to a JIRA then follow up on list)

- robert



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org