Hi devs,

I did performance test with 1. SOAP support , 2 JSON Badgerfish , 3 JSON
first approach(pure json) and 4. JSON second
approach(XMLStreamReader/XMLStreamWriter implementation). Here i have
summarize the results i got.
I used same POJO service and send the exact same request in relevent
convention.

Environment:
OS : Ubuntu 11.04
JDK 1.6_30
memory 4 GB

 *                                       SOAP         JSON
badgerfish          JSON 1st approach   JSON 2nd approach

Concurrency Level:           *50
50                              50                               50
*Time taken for tests:*         243.13 sec       287.18 sec
118.99                          200.0
*Complete requests:          *500000             500000*
*500000                        500000 *
Total transferred:*              2.2 GB             34.42
GB                    0.61 GB                       0.63 GB
*Requests per second:      *2056.53* *#/sec   1741.04 #/sec
4201.69 #/sec               2499.91 #/sec
*Time per request:             *24.3 ms           28.7 ms
   11.90 ms                      20.00 ms *
Time per request:(mean)  *0.486* *ms          0.544 ms
0.238 ms                      0.4 ms

Thanks,
Shameera.

On Wed, Aug 8, 2012 at 12:17 PM, Shameera Rathnayaka <shameerai...@gmail.com
> wrote:

> HI devs,
>
> I finished the implementation and did a performance test with existing
> SOAP and implemented JSON. Here is the summary of the test results.
> For this i used same service and send the same request in both SOAP and
> JSON ways, size of JSON message is lower than SOAP message but requests are
> exactly same.
>
> Environment :
> OS - Ubuntu 11.10
> Axis2 1.7(current trunk)
> Tool - Java benchmark
>
> *num of requests* : 50000
> *concurrency level*: 10 (Total num of requests are 50000*10 = 500000 )
> *Time taken for test* :  with SOAP  *178* sec and with JSON *140* sec
> *Total transferred* : with SOAP *2371000000* bytes and with JSON *
> 674000000* bytes
> *Requests per second*: with SOAP * 2,801.76* [#/sec] (mean)  and with
> JSON * 3,568.89* [#/sec] (mean)
>
> will do a performance test with concurrency level 50 and num of requests
> 500000 and give the summary of results.
>
> Thanks,
> Shameera.
>
>
>
>
> On Tue, Jul 31, 2012 at 10:50 AM, Shameera Rathnayaka <
> shameerai...@gmail.com> wrote:
>
>> HI devs,
>>
>> I have implemented XMLStreamWriter as well as XMLStreamReader to convert
>> XML <----> JSON with XMLSchema,
>> Basically it works fine, but still need few test to be done after that I
>> am willing to write performance test with implemented JSON support with
>> existing SOAP support.
>>
>> Thanks,
>> Shameera.
>>
>>
>>
>> On Mon, Jul 16, 2012 at 10:43 AM, Amila Suriarachchi <
>> amilasuriarach...@gmail.com> wrote:
>>
>>>
>>>
>>> On Sun, Jul 15, 2012 at 10:53 PM, Shameera Rathnayaka <
>>> shameerai...@gmail.com> wrote:
>>>
>>>> Hi devs,
>>>>
>>>> I implemented this feature completely to convert XML to JSON with the
>>>> help of XmlSchema of that XML document. I tested this with different
>>>> Schemas, it is working fine. I implemented this as a separate project, so i
>>>> will integrate this with axis2 trunk and try with actual scenario.
>>>>
>>>
>>> Can you use this technique at the reader level as well to support
>>> namespaces?
>>>
>>> Then do a performance comparison using a POJO service with the exiting
>>> json support and based the new gson based XMLstream API. According to the
>>> result we need to optimise the later to have better performance.
>>>
>>> thanks,
>>> Amila.
>>>
>>>
>>>>
>>>> Yes, This may be a standard way to convert XML to JSON conversion as
>>>> other implementations don't convert JSON message correctly when it has one
>>>> value array, unless implementation supports special XML structure where
>>>> Json-lib does.
>>>>
>>>> Definitely we can improve the performance of this implementation. May
>>>> be in the way that Sagara had suggested in his reply or in another way.
>>>>
>>>> Thanks,
>>>> Shameera.
>>>>
>>>> On Sun, Jul 15, 2012 at 6:56 PM, Amila Suriarachchi <
>>>> amilasuriarach...@gmail.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Sun, Jul 15, 2012 at 2:19 PM, Sagara Gunathunga <
>>>>> sagara.gunathu...@gmail.com> wrote:
>>>>>
>>>>>> On Sun, Jul 15, 2012 at 1:27 PM, Amila Suriarachchi
>>>>>> <amilasuriarach...@gmail.com> wrote:
>>>>>> >
>>>>>> >
>>>>>> > On Sat, Jul 14, 2012 at 1:14 PM, Sagara Gunathunga
>>>>>> > <sagara.gunathu...@gmail.com> wrote:
>>>>>> >>
>>>>>> >> On Sat, Jul 14, 2012 at 12:42 PM, Shameera Rathnayaka
>>>>>> >> <shameerai...@gmail.com> wrote:
>>>>>> >> > Hi devs,
>>>>>> >> >
>>>>>> >> > As Amila(Project mentor) suggested in previous thread[0] , I have
>>>>>> >> > implemented
>>>>>> >> > XMLStreamWriter API to use schema of the processing xml and gson
>>>>>> >> > together
>>>>>> >> > to convert XML ---> JSON. I have made my progress up to support
>>>>>> xml
>>>>>> >> > which
>>>>>> >> > don't have complex type elements with maxOccur >1,  but may have
>>>>>> simple
>>>>>> >> > type elements with maxOccur >=1 . That means In the JSON point
>>>>>> of view,
>>>>>> >> > my
>>>>>> >> > present implementation supports XML --> JSON where there is not
>>>>>> any JSON
>>>>>> >> > Arrays which has JSON objects in the converted JSON String.
>>>>>> >> >
>>>>>> >> > Here is a summary of the implementation.
>>>>>> >> >
>>>>>> >> > GsonXmlStreamWriter which implements XMLStreamWriter has a
>>>>>> constructor
>>>>>> >> > to get JsonWriter and XmlSchema object. Then it process
>>>>>> XmlSchema and
>>>>>> >>
>>>>>> >> Are you plan to process  XmlSchema object with every response ? If
>>>>>> so
>>>>>> >> processing  XmlSchema object will add some overhead and result into
>>>>>> >> performance.  Axis2 already has JSON support main objective of this
>>>>>> >> project is to provide a high performance JSON implementation,
>>>>>> >> processing  XmlSchema object with every response does not help to
>>>>>> meet
>>>>>> >> your expectations. Instead I suggest to process  XmlSchema object
>>>>>> only
>>>>>> >> one-time during the deployment after the AxisService creation and
>>>>>> >> store result of  XmlSchema processing  with AxisService object as
>>>>>>  a
>>>>>> >> light-weight object ( Let's say a map)   and use this light weight
>>>>>> map
>>>>>> >> with response. In this approach overhead if relatively low.
>>>>>> >
>>>>>> >
>>>>>> > This is a POC level approach to convert xml stream to json using
>>>>>> xml schema.
>>>>>> > For an example there are some techniques like
>>>>>> > bagger fish and others to address this problem. But those things
>>>>>> complicated
>>>>>> > the produced json stream.
>>>>>> >
>>>>>> > Once it proves at the POC level we can think of improving
>>>>>> performance.
>>>>>> >
>>>>>> > If you look at the current axis2 json support does that properly
>>>>>> address the
>>>>>> > problem shameera mentioned earlier? i.e serialising the
>>>>>> > array elements when there is on element. And also can that be used
>>>>>> with some
>>>>>> > thing like ADB or WSO2 Data Services,rules etc..
>>>>>> > Idea here to develop a technique to address those problems properly
>>>>>> while
>>>>>> > converting an xml stream to json stream.
>>>>>>
>>>>>> I don't have any issue with the technique proposed here (i.e.
>>>>>> processing XMLSchema to identify structure ). My only concern is why
>>>>>> we should process XMLSchema with every response because in each and
>>>>>> every response we end up getting same result, why shouldn't we process
>>>>>> XMLSchema only one time and reuse results ? May be as last step of
>>>>>> deployment or with very first response processing ?
>>>>>>
>>>>>> Of course we can keep it as future improvement for the moment but
>>>>>> Axis2 having good history of forgetting those improvement  after
>>>>>> initial development every time when I dig into code I found couple of
>>>>>> such TODOs.
>>>>>>
>>>>>
>>>>> :) I am not telling to do it after GSoc project. But first we need to
>>>>> have a proper POC.
>>>>>
>>>>> thanks,
>>>>> Amila.
>>>>>
>>>>>>
>>>>>> Thanks !
>>>>>>
>>>>>>
>>>>>>
>>>>>> >
>>>>>> > thanks,
>>>>>> > Amila.
>>>>>> >
>>>>>> >>
>>>>>> >>
>>>>>> >> Thanks !
>>>>>> >>
>>>>>> >> > use a queue to keep the schema structure. At the moment i have
>>>>>> only
>>>>>> >> > implemented
>>>>>> >> > writeStartElement(String localName) , writeCharaters(String
>>>>>> text) ,
>>>>>> >> > writeEndElement()
>>>>>> >> > and writeEndDocument() functions. I am processing the queue
>>>>>> which has
>>>>>> >> > the schema structure and put it to another stack to identify the
>>>>>> scope
>>>>>> >> > of
>>>>>> >> > end elements.
>>>>>> >> >
>>>>>> >> > I am now working on, improving this to support xml which has
>>>>>> complex
>>>>>> >> > type
>>>>>> >> > elements
>>>>>> >> >  with maxOccour > 1 . I'll keep updating my progress mean while.
>>>>>> >> >
>>>>>> >> > Thanks,
>>>>>> >> > Shameera.
>>>>>> >> >
>>>>>> >> > --
>>>>>> >> > Shameera Rathnayaka
>>>>>> >> > Undergraduate
>>>>>> >> > Department of Computer Science and Engineering
>>>>>> >> > University of Moratuwa.
>>>>>> >> > Sri Lanka.
>>>>>> >> >
>>>>>> >> > Blog : http://shameerarathnayaka.blogspot.com/
>>>>>> >> >
>>>>>> >>
>>>>>> >>
>>>>>> >>
>>>>>> >> --
>>>>>> >> Sagara Gunathunga
>>>>>> >>
>>>>>> >> Blog      - http://ssagara.blogspot.com
>>>>>> >> Web      - http://people.apache.org/~sagara/
>>>>>> >> LinkedIn - http://www.linkedin.com/in/ssagara
>>>>>> >>
>>>>>> >>
>>>>>> ---------------------------------------------------------------------
>>>>>> >> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
>>>>>> >> For additional commands, e-mail: java-dev-h...@axis.apache.org
>>>>>> >>
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > --
>>>>>> > Amila Suriarachchi
>>>>>> > WSO2 Inc.
>>>>>> > blog: http://amilachinthaka.blogspot.com/
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sagara Gunathunga
>>>>>>
>>>>>> Blog      - http://ssagara.blogspot.com
>>>>>> Web      - http://people.apache.org/~sagara/
>>>>>> LinkedIn - http://www.linkedin.com/in/ssagara
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
>>>>>> For additional commands, e-mail: java-dev-h...@axis.apache.org
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Amila Suriarachchi
>>>>> WSO2 Inc.
>>>>> blog: http://amilachinthaka.blogspot.com/
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Shameera Rathnayaka
>>>> Undergraduate
>>>> Department of Computer Science and Engineering
>>>> University of Moratuwa.
>>>> Sri Lanka.
>>>>
>>>> Blog : http://shameerarathnayaka.blogspot.com/
>>>>
>>>>
>>>
>>>
>>> --
>>> Amila Suriarachchi
>>> WSO2 Inc.
>>> blog: http://amilachinthaka.blogspot.com/
>>>
>>
>>
>>
>> --
>> Shameera Rathnayaka
>> Undergraduate
>> Department of Computer Science and Engineering
>> University of Moratuwa.
>> Sri Lanka.
>>
>> Blog : http://shameerarathnayaka.blogspot.com/
>>
>>
>
>
> --
> Shameera Rathnayaka
> Undergraduate
> Department of Computer Science and Engineering
> University of Moratuwa.
> Sri Lanka.
>
> Blog : http://shameerarathnayaka.blogspot.com/
>
>


-- 
Shameera Rathnayaka
Undergraduate
Department of Computer Science and Engineering
University of Moratuwa.
Sri Lanka.

Blog : http://shameerarathnayaka.blogspot.com/

Reply via email to