Hi Don,

thank you so much for the input. It helped me alot to understand what
appstats is for.

Can anyone tell me how to setup DevAppServer for profiling with an
external profiling tool? Normally i just run it from eclipse.

I forgot to mention that my server code heavily relies on reflection
i.e. on every CRUD operation data is copied from a generic dto class
into the domain class object (or the other way around). I want to find
out how much load is generated where by all this reflection to
optimize my apps performance (e.g. DtoCopyMachine code see
http://code.google.com/p/honeycrm/source/browse/branches/honeycrm_r134_gwt2.1m2/src/honeycrm/server/transfer/DtoCopyMachine.java).

Kind Regards,
Ingo

On 16 Aug., 17:28, Don Schwarz <[email protected]> wrote:
> Hi Ingo,
>
> If you're making any API calls at all, there's a good chance that the
> performance of your application depends significantly on the performance of
> those API calls.  The goal of Appstats is to give you transparency into how
> many API calls you are making, and how much time you are spending in those
> API calls.  While you cannot necessarily optimize the API calls themselves,
> there are important things that you can change in your application code
> which will influence the number and speed of API calls:
> - use bulk versions of API calls (e.g. datastore.get() to retrieve multiple
> entities in a single call)
> - store commonly-accessed datastore entities in memcache
> - use keys-only datastore queries when relevant
>
> If you are using JDO/JPA to access the datastore then some of this is
> obscured from you, but it is still a good idea to know what API calls are
> being made under the covers.  This may influence how you construct your data
> model.
>
> Now it's very possible that you aren't making any API calls at all, or that
> most of your time is consumed by expensive CPU-bound construction or
> calculations within your application code.  In this case Appstats will not
> be very helpful to you.  In this case I would suggest hooking up a
> traditional Java profiler to the DevAppServer.  The performance of CPU-bound
> code on our servers should not be drastically different than under the
> DevAppServer.
>
> On Mon, Aug 16, 2010 at 9:54 AM, Ingo Jaeckel
> <[email protected]>wrote:
>
> > hello everyone,
>
> > okay if nobody knows an answer to this question i would like to know
> > what appstats is all about if you can only measure (?) the time for a
> > complete RPC request. since i as a developer cannot influence the
> > speed of API methods (e.g. CRUD operations in the bigtable datastore)
> > i am more interested in the performance of my own code. what is the
> > use of appstats if i cannot measure my apps performance (see previous
> > postings)?
>
> > kind regards,
> > ingo
>
> > 2010/8/13 Ingo Jaeckel <[email protected]>:
> > > hello everyone,
>
> > > i would like to make sure that i am reading the appstats output the
> > > right way. is it correct to read each trace from button to top? if
> > > that is true it seems like appstats only tells you
>
> > > 1. the entry point of the trace e.g.
> > > com.google.apphosting.runtime.JavaRuntime$RpcRunnable:418 run() at the
> > > bottom of the page/trace
> > > 2. the exit point of the trace e.g.
> > > com.google.apphosting.api.ApiProxy:98 makeSyncCall()  at the top of
> > > the page/trace
> > > 3. the time spend from entering and leaving the trace i.e. the time
> > > between com.google.apphosting.runtime.JavaRuntime$RpcRunnable:418
> > > run() and com.google.apphosting.api.ApiProxy:98 makeSyncCall()
>
> > > if this is still correct my question remains: is it also possible to
> > > measure the time of a fraction of the trace? thanks everyone in
> > > advance!
>
> > > kind regards,
> > > ingo
>
> > > 2010/8/12 Ingo Jaeckel <[email protected]>:
> > >> hello everyone,
>
> > >> i enabled appstats for my java application honeycrm. now i want to
> > >> know which parts of app take up most cpu time. at the moment i do not
> > >> care about the time spent in other packages. i would like to measure
> > >> the execution time of the methods in the package of my application:
> > >> honeycrm.server.*
>
> > >> when i open the appstats ui i see a lot of huge stacktraces. usually i
> > >> find my sourcecode executed somewhere in the middle of the trace (see
> > >> attached screenshot). but as i said i would like to know the time
> > >> spend in my methods. e.g. how much time of the selected 50ms slot has
> > >> been spend in
> > honeycrm.server.CommonServiceReader.resolveRelatedEntities()?
> > >> basically i want to identify the hotspots in my application that
> > >> require performance tuning. but with the appstats ui i do not know how
> > >> to get the necessary information for that.
>
> > >> can anyone tell me how to identify hotspots in my code using appstats?
>
> > >> i tried appwrench as well but could not get it going (eclipse helios,
> > >> gwt 2.1m2 on macosx snow leopard). did anyone has success with that?
>
> > >> kind regards,
> > >> ingo
>
> > --
> > 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
> > [email protected].
> > To unsubscribe from this group, send email to
> > [email protected]<google-appengine-java%[email protected]>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine-java?hl=en.
>
>

-- 
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 [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-appengine-java?hl=en.

Reply via email to