Hello,
I'm encountering similar issue with Guice. Currently the initialization
time of my application is for about 12 seconds. (From my log: Injector
Initialization Time:12023 ms). On my local development machine it's
initialized for Time:4982 ms.
Here is some logging snippets from my local environment that are showing
execution time of the initialization operations:
Jun 7, 2010 7:26:44 AM com.google.inject.internal.Stopwatch resetAndLog
FINE: Module execution: 1849ms
Jun 7, 2010 7:26:45 AM com.google.inject.internal.Stopwatch resetAndLog
FINE: Binding initialization: 517ms
Jun 7, 2010 7:26:47 AM com.google.inject.internal.BytecodeGen newFastClass
FINE: Loading class
com.google.sitebricks.rendering.control.DefaultWidgetRegistry FastClass
with com.google.appengine.tools.development.isolatedappclassloa...@1326484
Jun 7, 2010 7:26:47 AM com.google.inject.internal.BytecodeGen newFastClass
FINE: Loading class com.google.sitebricks.compiler.StandardCompilers
FastClass with
com.google.appengine.tools.development.isolatedappclassloa...@1326484
Jun 7, 2010 7:26:47 AM com.google.inject.internal.BytecodeGen newFastClass
FINE: Loading class com.google.sitebricks.DebugModePageBook FastClass
with com.google.appengine.tools.development.isolatedappclassloa...@1326484
Jun 7, 2010 7:26:47 AM com.google.inject.internal.BytecodeGen newFastClass
FINE: Loading class com.google.sitebricks.DebugModeRoutingDispatcher
FastClass with
com.google.appengine.tools.development.isolatedappclassloa...@1326484
Jun 7, 2010 7:26:47 AM com.google.inject.internal.Stopwatch resetAndLog
FINE: Binding validation: 2308ms
Any idea how I can optimize my application ?
I was thinking for using of child injectors and late bindings, but
currently I couldn't find out clean way to do it.
Regards,
Miroslav
On 02/10/2010 01:11 AM, Dhanji R. Prasanna wrote:
Do you have a lot of AOP running? That could be making GAE run
additional classes through the security loader.
Dhanji.
On Wed, Feb 10, 2010 at 9:35 AM, John Patterson <[email protected]
<mailto:[email protected]>> wrote:
Yes but pre-compilation does not affect Guice startup time.
On 10 Feb 2010, at 05:20, Dhanji R. Prasanna wrote:
Have you tried using offline precompilation?
Dhanji.
On Wed, Feb 10, 2010 at 7:05 AM, Bob Lee <[email protected]
<mailto:[email protected]>> wrote:
John,
Enable FINE-level logging for Guice's Stopwatch:
Logger stopwatchLogger =
Logger.getLogger(com.google.inject.internal.Stopwatch.class.getName());
stopwatchLogger.setLevel(Level.FINE);
This will log perf #s and tell you at a high level where the
time is spent during injector creation.
Beyond that, I'd use a profiler like YourKit.
Unless you have a ginormous configuration, my guess is
something expensive is happening in one of your modules. 4
seconds sounds excessive. I use Guice on Android, even going
so far as to create a separate injector for each screen, and
startup time hasn't been an issue.
Bob
On Sun, Feb 7, 2010 at 2:17 PM, jd <[email protected]
<mailto:[email protected]>> wrote:
Hi, I am using Guice with a Google App Engine project but
have found
that the startup time of Guice is killing my app.
"Loading requests"
are very frequent in GAE and need to be fast or your user
sits and
waits. Currently the apps startup time is about 6 seconds
and of that
the Injector takes 4 seconds to build. This is with
Stage set to
Development which did knock about two seconds off the time.
My question is, are there any other tricks to reduce
Guice startup
time. Could some configuration be saved or serialized
rather than
recalculated every time my app spins up a new instance?
Thanks,
John.
--
You received this message because you are subscribed to
the Google Groups "google-guice" group.
To post to this group, send email to
[email protected]
<mailto:[email protected]>.
To unsubscribe from this group, send email to
[email protected]
<mailto:google-guice%[email protected]>.
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en.
--
You received this message because you are subscribed to the
Google Groups "google-guice" group.
To post to this group, send email to
[email protected]
<mailto:[email protected]>.
To unsubscribe from this group, send email to
[email protected]
<mailto:google-guice%[email protected]>.
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en.
--
You received this message because you are subscribed to the
Google Groups "google-guice" group.
To post to this group, send email to
[email protected] <mailto:[email protected]>.
To unsubscribe from this group, send email to
[email protected]
<mailto:[email protected]>.
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en.
--
You received this message because you are subscribed to the Google
Groups "google-guice" group.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
To unsubscribe from this group, send email to
[email protected]
<mailto:google-guice%[email protected]>.
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en.
--
You received this message because you are subscribed to the Google
Groups "google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en.
--
You received this message because you are subscribed to the Google Groups
"google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en.