aries-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bal√°zs Zsoldos <balazs.zsol...@everit.biz>
Subject Re: Profiling an Aries Application
Date Fri, 06 Apr 2012 00:31:24 GMT
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
>
>

Mime
View raw message