aries-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nima Kaviani <nima.kavi...@gmail.com>
Subject Re: Profiling an Aries Application
Date Sat, 07 Apr 2012 01:55:33 GMT
Thanks a lot Balazs for the hints on using JRockit.

yes I am aware of performance gains when using JRockit. The issue here is
that I need to attach a custom java agent to the vm in order to collect
some domain specific data about the performance of a given application. so,
going with JRockit is not an option for me at this point.

Any other thoughts?

regards,
-Nima

On Thu, Apr 5, 2012 at 5:31 PM, Bal√°zs Zsoldos <balazs.zsoldos@everit.biz>wrote:

> Hi,
>
> I use normally JRockit from BEA (now Oracle). It gives about 1%
> performance loss during profiling the application and I have never had a
> problem with any application (even with modules like spring or aries-proxy).
>
> JRockit is free if you use it for testing and development (non-free for
> live systems). It does not work as a Java agent but it is a standalone JVM.
> Due to the JVM I think it does not need class bytecode manipulation and
> other half-working tricks to do profiling.
>
> After you downloaded and installed it you will find a jrmc folder in the
> installation directory. That is a customized eclipse that can connect to
> any locally started JRockit JVM without any configuration.
>
> For me at least it helped a lot in the past and after the agent based
> profilers it was like getting into a Ferrari from a Trabant.
>
> I hope you will find it as useful as I did.
>
> Regards,
> Balazs Zsoldos
> Software Architect
> Mobile: +36-70/594-92-34
>
> Everit Kft.
> https://www.everit.biz
>
>
>
>
> On Fri, Apr 6, 2012 at 1:48 AM, Nima Kaviani <nima.kaviani@gmail.com>wrote:
>
>> Hi All,
>>
>> I am trying to hook a Java profiler agent to an aries application and it
>> results in an enormous amount of delay in booting the application to the
>> point where all the bundles in the eba are installed and started.
>>
>> If no profiler is attached, the application launches in about 30 seconds
>> or so, but when I hook the profiler the launch takes really long.
>>
>> Messages that I receive from the debugger are mainly of the following
>> form:
>>
>> [fileinstall-./load] DEBUG
>> org.apache.aries.application.resolver.obr.impl.RequirementImpl - Method
>> entry: isSatisfied, args
>> service:{service=org.ops4j.pax.web.service.WebContainer}
>> [fileinstall-./load] DEBUG
>> org.apache.aries.application.modelling.impl.ImportedBundleImpl - Method
>> entry: getType, args {}
>> [fileinstall-./load] DEBUG
>> org.apache.aries.application.modelling.impl.ImportedBundleImpl - Method
>> exit: getType, returning [bundle]
>> [fileinstall-./load] DEBUG
>> org.apache.aries.application.resolver.obr.impl.RequirementImpl - Method
>> exit: isSatisfied, returning false
>>
>> I am not quite sure what the combination of application resolver and
>> application modeler do but It seems like the aries application resolver and
>> the application modeler are analyzing all classes in the application method
>> by method which results in a significant overhead when doing profiling!
>>
>> So my questions are the following:
>>
>> What is the exact role of ImportBundleImpl and RequirementImpl and are
>> they looking into every method of the application? Is there any way to
>> mitigate the performance when doing profiling? Are there any intermediate /
>> proxy classes made by aries that may lead to profiling to deal with them as
>> well?
>>
>> Finally, is there a reference to the internal behavior of aries resolver
>> and modelling bundles that describes their behavior?
>>
>> any help is very much appreciated.
>>
>>  thanks,
>> -Nima
>>
>>
>


-- 
http://nima.magic.ubc.ca

Mime
View raw message