Hi Steve,
I read your link.  What I am referring to does include JVM startup.
Those are the times I get right after a redeploy.

Here are some more lines from my logs, included with my info logs that
I omitted last time:
03-20 04:07PM 41.084 /donothing 200 891ms 796cpu_ms 0kb Mozilla/5.0,
AC.Log info: JVMID: -4270362285924610791 - ReqNum: 0
03-20 04:11PM 22.290 /donothing 200 1240ms 777cpu_ms 0kb Mozilla/5.0,
AC.Log info: JVMID: -5678405964618118370 - ReqNum: 0
03-20 04:12PM 06.574 /donothing 200 81ms 58cpu_ms 0kb Mozilla/5.0,
AC.Log info: JVMID: -5678405964618118370 - ReqNum: 1
03-20 04:14PM 31.684 /donothing 200 1105ms 835cpu_ms 0kb Mozilla/5.0,
AC.Log info: JVMID: -5439702848547505668 - ReqNum: 0
03-20 04:14PM 52.309 /donothing 200 71ms 58cpu_ms 0kb Mozilla/5.0,
AC.Log info: JVMID: -5439702848547505668 - ReqNum: 1

Here are the corresponding times for my browser to receive a response
(captured with firebug):
1.11s
1.38s
188ms
1.22s
172ms

In the logs, the lines that say "ReqNum: 0" were cold starts that
happened because I redeployed my app.  One of them even took less than
a second :).

I have spent many months learning how to optimize my cold start time.
I took my original app that took 15 seconds for a cold start, and have
brought it down quite a bit :).

I wrote a guide on my blog for cold start optimization if you are
interested.  Here is the link - 
http://www.answercow.com/2010/03/google-app-engine-cold-start-guide-for.html
.

On Mar 20, 1:24 pm, Steve Pritchard <steve...@gmail.com> wrote:
> Hi,
> As I explained 
> inhttp://groups.google.com/group/google-appengine-java/browse_thread/th...
>
> I have the notion of cold/warm/hot.
> It calculates and records the service time when the top left-most GEM
> is pressed..  Hovering over the gem after it returns will show the
> stats.
>
> A cold start only happens after a redeploy.
>
> A warm start seems to add about 5000ms to my 'network' time which is
> normally 400ms or so.  My turnaround in the server goes from almost 0
> to about 2000ms, mostly doing a single cache-read from MemCache plus
> the ensuing de-serialization.
>
> The 5000ms has to be JVM etc start up.  Only the google folks can deal
> with that one. Theoretically getting rid of the unneeded .jar files
> can only help.
>
> In my hot mode there is no JVM start-up and I am able to service the
> request in about 400ms.
>
> Your cold-start (which is my warm start equivalent) of 2867ms is not
> including the JVM startup so I suspect at your browser the time is
> longer.
>
> Hope this helps.
> Steve
>
> On Mar 20, 11:42 am, Spines <kwste...@gmail.com> wrote:
>
>
>
> > Hey Steve,
> > Yea, the elapsed time is usually higher than CPU usage, but I think
> > maybe because I was doing my testing late last night I lucked into
> > really low elapsed time too.  I checked my cold start time this
> > morning, and elapsed time was 2867ms with 1010cpu_ms.
>
> > Here are some lines from my logs:
> > 03-20 08:30AM 05.838 /donothing 200 2867ms 1010cpu_ms 0kb Mozilla/5.0
> > 03-20 12:15AM 00.832 /donothing 200 2155ms 913cpu_ms 0kb Mozilla/5.0
> > 03-19 11:02PM 28.449 /donothing 200 1119ms 1166cpu_ms 0kb Mozilla/5.0
>
> > The elapsed time seems to vary greatly, whereas cpu time seems to be a
> > decent metric to see if an optimization of mine actually had an
> > effect.  The page I request for testing is a servlet which returns
> > nothing.  Note that if you are requesting a JSP it will increase your
> > cold start times by at least a few hundred milliseconds.  For some
> > reason the first access to even the most simple JSP (like <%= 5+2 %>
> > will take quite a while.
>
> > I'd really love to get my elapsed time down to around the same amount
> > as my CPU time.  Does anyone have any insights as to what exactly App
> > Engine is doing during that time?
>
> > On Mar 20, 7:30 am, Steve Pritchard <steve...@gmail.com> wrote:
>
> > > Update to previous post.
> > > I am measuring elapsed time (what I really care about), not CPU secs.
> > > I could not figure out how a cold start was so fast (1200ms).
> > > Steve
>
> > > On Mar 20, 10:26 am, Steve Pritchard <steve...@gmail.com> wrote:
>
> > > > Thanks for the tip.  I am in the same boat in that I do not use JDO
> > > > etc. I also do not need GWT stuff.  So I deleted:
>
> > > > datanucleus-appengine-1.0.5.final.jar
> > > > datanucleus-core-1.1.5.jar
> > > > datanucleus-jpa-1.1.5.jar
> > > > geronimo-jpa_3.0_spec-1.1.1.jar
> > > > geronimo-jta_1.1_spec-1.1.1.jar
> > > > gwt-servlet.jar
> > > > jdo2-api-2.3-eb.jar
>
> > > > from my 1.3.1 war\lib  and it keeps running. My 'warm' start (using
> > > > MemCache) is around 3200ms. Previously I recall it fluctuated around
> > > > 4000ms.
> > > > Steve
>
> > > > On Mar 20, 2:09 am, Spines <kwste...@gmail.com> wrote:
>
> > > > > Well, I figured it out, I just deleted all of the jars I didn't need
> > > > > from my ./build directory.  I deleted all of the JDO, JPA, and
> > > > > datanucleus jars.  The result of doing this was I got my first cold
> > > > > start that happened under 1200ms :).  Previously the CPU time used by
> > > > > a cold start was pretty consistently around 1500ms, and after deleting
> > > > > those jars it is now around 1150ms :).

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to