[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jacorb-developer
Subject:    Re: [jacorb-developer] Performance Problem with Anys
From:       Steve Osselton <steve () prismtech ! com>
Date:       2005-09-20 16:57:48
Message-ID: 43303F8C.8030203 () prismtech ! com
[Download RAW message or body]

Hi John,

The JacORB IDL compiler generates code that only uses standard CORBA APIs
i.e there are no internal implementation classes referenced. I believe
VisiBroker by default generates code that directly accesses their internal
implementation classes, obviously for efficiency. It would be interesting
to know how the speeds compare if the VisiBroker classes are generated
to use the standard mappings (I believe there is a compiler flag to enable
this).

Cheers Steve.

John Fisher wrote:
> I was hoping for some sort of response to the performance issue, described
> in detail below. Isn't this of wider concern to folks? The difference in
> performance was huge....
> 
> Thanks,
> John
> 
> 
> 
>>-----Original Message-----
>>From: John Fisher [mailto:fisher23@llnl.gov]
>>Sent: Friday, September 16, 2005 1:47 PM
>>To: 'Discussions concerning CORBA development with JacORB'
>>Subject: RE: [jacorb-developer] Performance Problem with Anys
>>
>>
>>Ok, thanks. I got that problem out of the way. Code profiling indicates
>>that avalon is not an issue right now. However, I do still see a huge
>>performance issue with the insert() of values into CORBA Anys, relative to
>>Visibroker. The extract() calls seem comparable (actually, Jacorb is
>>somewhat better). Given the following loop:
>>
>>==================================
>>    startTime = System.currentTimeMillis();
>>    for (int i = 0; i < 5000000; i++) {
>>        theAny = _orb.create_any();
>>        MyTypeHelper.insert(theAny, testMapper);
>>    }
>>    endTime = System.currentTimeMillis();
>>==================================
>>
>>I find under on my dual 3.0GHz WinXP box, it runs in 1234ms under
>>Visibroker. When I switch to JacORB (rebuilding the IDL, and changing
>>appropriate environment variables), the same loop takes 93,689ms!!
>>
>>Here's a CPU profile taken while looping:
>>
>>=================================================
>>100.00% - demo.AnyTestMain.AnyTestMain()
>>
>>  95.96% - Demo_Types.MyTypeHelper.insert()
>>
>>    57.16% - org.jacorb.orb.Any.create_output_stream()
>>      28.47% - org.jacorb.orb.CDROutputStream.CDROutputStream()
>>      4.75% - org.jacorb.orb.ORBSingleton.get_primitive_tc()
>>
>>    33.62% - Demo_Types.MyTypeHelper.write()
>>      13.52% - org.jacorb.orb.CDROutputStream.write_string()
>>      9.17% - Time_Stamp.Date_Time_TypeHelper.write()
>>      4.44% - org.jacorb.orb.CDROutputStream.write_float()
>>      2.81% - Demo_Types.Condition_TypeHelper.write()
>>      1.04% - org.jacorb.orb.CDROutputStream.CDROutputStream()
>>
>>    0.95% - org.jacorb.orb.Any.Any()
>>
>>    0.47% - Demo_Types.MyTypeHelper.type()
>>
>>3.41% - org.jacorb.orb.ORBSingleton.create_any()
>>=================================================
>>
>>Visibroker profiles like this:
>>
>>=================================================
>>100.00% - demo.AnyTestMain.AnyTestMain()
>>
>>  49.81% - Demo_Types.MyTypeHelper.insert()
>>
>>    25.23% - com.inprise.vbroker.orb.AnyImpl.insert_Streamable()
>>      5.78% - Demo_Types.MyTypeHolder._type()
>>      5.00% - com.inprise.vbroker.typecode.TypeCode.convertToInprise()
>>      4.73% - com.inprise.vbroker.orb.ORBSingleton.get_primitive_tc()
>>    6.70% - com.inprise.vbroker.orb.AnyImpl.AnyImpl()
>>    5.06% - Demo_Types.MyTypeHolder.MyTypeHolder()
>>
>>  37.09% - com.inprise.vbroker.orb.ORBSingleton.create_any()
>>
>>    20.29% - com.inprise.vbroker.orb.AnyImpl.AnyImpl()
>>      5.82% - com.inprise.vbroker.CORBA.Any.Any()
>>      3.90% - com.inprise.vbroker.orb.ORBSingleton.get_primitive_tc()
>>      3.52% - com.inprise.vbroker.typecode.TypeCode.convertToInprise()
>>      0.12% - Demo_Types.MyTypeHolder._type()
>>    6.63% - com.inprise.vbroker.orb.AnyImpl.insert_Streamable()
>>=================================================
>>
>>Any thoughts on why there is such a huge performance difference?
>>
>>Thanks,
>>John
>>
>>
>>
>>>-----Original Message-----
>>>From: jacorb-developer-bounces+fisher23=llnl.gov@lists.spline.inf.fu-
>>>berlin.de [mailto:jacorb-developer-
>>>bounces+fisher23=llnl.gov@lists.spline.inf.fu-berlin.de] On Behalf Of
>>>Nicolas Noffke
>>>Sent: Thursday, September 15, 2005 8:32 AM
>>>To: Discussions concerning CORBA development with JacORB
>>>Subject: Re: [jacorb-developer] Performance Problem with Anys
>>>
>>>Hi John,
>>>the avalon config system jacorb is using imposes a huge penalty on a
>>>property lookup where the property is not set. Please have a
>>>orb.properties file, derived from the template, in your home directory
>>>(or any of the other locations jacorb searches for that file, see the
>>>Programming Guide, section 3) and test again.
>>>
>>>Regards,
>>>   Nicolas
>>>
>>>John Fisher wrote:
>>>
>>>>Found something interesting when running with a profiler....  The
>>>
>>>extract()
>>>
>>>>call seems to be spending most of its time in:
>>>>
>>>>
>>>
>>org.apache.avalon.framework.configuration.ConfigurationException.Configura
>>
>>>ti
>>>
>>>>onException()
>>>>
>>>>Putting an empty jacorb.properties file in my classpath will remove
>>
>>the
>>
>>>>message:
>>>>
>>>>[ No configuration properties found for configuration jacorb ]
>>>>
>>>>But cause no difference in performance... Any ideas???
>>>>
>>>>Thanks,
>>>>John
>>>>
>>>>
>>>>
>>>>
>>>>>-----Original Message-----
>>>>>From: jacorb-developer-bounces+fisher23=llnl.gov@lists.spline.inf.fu-
>>>>>berlin.de [mailto:jacorb-developer-
>>>>>bounces+fisher23=llnl.gov@lists.spline.inf.fu-berlin.de] On Behalf Of
>>>
>>>John
>>>
>>>>>Fisher
>>>>>Sent: Tuesday, September 13, 2005 7:40 PM
>>>>>To: jacorb-developer@lists.spline.inf.fu-berlin.de
>>>>>Subject: [jacorb-developer] Performance Problem with Anys
>>>>>
>>>>>
>>>>>
>>>>>Hi folks,
>>>>>
>>>>>
>>>>>
>>>>>We are looking at migrating from Visibroker to JacORB, and have
>>
>>noticed
>>
>>>a
>>>
>>>>>huge difference in performance, related to the handling of Any values.
>>>>>I've
>>>>>constructed a demo which will do 100,000 inserts into an Any, followed
>>>
>>>by
>>>
>>>>>100,000 extracts from an Any, of the following data type:
>>>
>>>--
>>>Nicolas Noffke                          nicolas.noffke@prismtech.com
>>>OpenFusion Total CORBA Solution Team    www.prismtech.com
>>>
>>>_______________________________________________
>>>jacorb-developer maillist  -  jacorb-developer@lists.spline.inf.fu-
>>>berlin.de
>>>http://lists.spline.inf.fu-berlin.de/mailman/listinfo/jacorb-developer
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> jacorb-developer maillist  -  jacorb-developer@lists.spline.inf.fu-berlin.de
> http://lists.spline.inf.fu-berlin.de/mailman/listinfo/jacorb-developer


-- 
Steve Osselton                steve@prismtech.com
PrismTech Chief Architect     www.prismtech.com


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic