[forge-dev] Improving the performance of weld for micro-deployments.

Stuart Douglas stuart.w.douglas at gmail.com
Tue Jan 29 18:18:55 EST 2013


If you look at the back traces in the profiler it should tell you what 
is calling it.

Stuart

Lincoln Baxter, III wrote:
> Okay, good to know. What kind of info would you need to get into things?
>
> Also, any idea why the report says that my Bootstrap.main(String[]) is
> called over 1000 times? Seems a bit odd to me. This method literally
> does a little string parsing, then calls starts Forge in a Thread (and
> waits for that thread to finish.)
>
>
> On Tue, Jan 29, 2013 at 5:33 PM, Stuart Douglas
> <stuart.w.douglas at gmail.com <mailto:stuart.w.douglas at gmail.com>> wrote:
>
>     Tracing is pretty useless at identifying slow parts, as the overhead
>     it adds distorts the profile too much. The only thing it is really
>     good for is identifying methods that are called too often.
>
>     Sampling is generally much better.
>
>
>
>     Stuart
>
>     Lincoln Baxter, III wrote:
>
>         What kind of information do you need? I was unable to get YourKit to
>         dump a .snapshot file for some reason. If that's what you need,
>         I can
>         try again. Which profile mode? This was done using tracing.
>
>         Thanks!
>
>
>         On Tue, Jan 29, 2013 at 4:32 PM, Stuart Douglas
>         <stuart.w.douglas at gmail.com <mailto:stuart.w.douglas at gmail.com>
>         <mailto:stuart.w.douglas at __gmail.com
>         <mailto:stuart.w.douglas at gmail.com>>> wrote:
>
>              The screenshot does not really tell us much. We would need
>         to see
>              the actual profile information.
>
>              Stuart
>
>
>              Lincoln Baxter, III wrote:
>
>                  Hi Jozef, Stuart, and Weld-devs,
>
>                  In Forge 2 we are using Weld extensively, and one of
>         the things
>                  we do is
>                  start up many instances simultaneously.
>
>                  We may have anywhere from one to one-hundred or more
>         weld instances.
>                  Currently we have only seen around 10-12 instances, and
>                  performance is
>         "Okay", but in theory, we could see hundreds of instances, at which
>                  point, performance starts to be a concern. We're
>         working around this
>                  problem by disabling CDI support on some internal
>         addons, but...
>                  it's
>                  not really reasonable to expect that everyone will do this.
>
>                  Which means... we need to figure out how to shave as
>         much time
>                  off the
>                  bootstrap as possible. Currently each weld instance takes
>                  anywhere from
>                  80ms to 450ms to start (not really sure why such
>         variation yet,) and
>                  we'd hopefully like to get that down even lower, around
>         10-20ms.
>                  Classloading time only would be optimal, but obviously
>         difficult
>                  to achieve.
>
>
>                  How can we get the most speed out of Weld? Most of our
>                  deployments have
>                  only ~15 bean classes at most. It seems like a lot of time
>                  (~30-40%) is
>                  being spent in the Google concurrent collections.
>
>                  (Screenshot attached.)
>
>                  Thanks,
>
>                  --
>                  Lincoln Baxter, III
>         http://ocpsoft.org
>         "Simpler is better."
>
>
>
>
>         --
>         Lincoln Baxter, III
>         http://ocpsoft.org
>         "Simpler is better."
>
>
>
>
> --
> Lincoln Baxter, III
> http://ocpsoft.org
> "Simpler is better."


More information about the forge-dev mailing list