Hi Charles, Your post is probably more appropriate for the Java mailing list.
You're using a static PMF which is good, because as you're seeing there's a high cost to create one and spin up JDO. What you'll probably see while you're starting out is that you have to incur this startup cost a lot because your app doesn't generate enough traffic for its JVM(s) to stay loaded in App Engine. They'll routinely get shut down after 30-60s of inactivity. A summary of this and other response-time-related Java issues is here - http://groups.google.com/group/google-appengine-java/msg/dafc502f0957c58a HTH, James On Mar 29, 7:03 pm, charles eubanks <[email protected]> wrote: > Included is the source of my entire servlet. When I run this servlet > it says that I am using as much as > {"totalCpu":3671926.973333333,"pmCpu":3671926.973333333} > > And to back up this my logs are telling me I am using a high amount of > CPU ( > 4600cpu_ms) and may soon exceed my quota. . > > In any case am I doing something wrong? It seems that if I am nearing > my max quota just getting the PersistenceManager then something is > just not right. > > I am not a paying user yet if that makes a difference. > > Any clues for a newbie? > > Thanks, > > package reminder; > > import java.io.IOException; > import java.util.logging.Level; > import java.util.logging.Logger; > > import javax.jdo.PersistenceManager; > import javax.servlet.ServletException; > import javax.servlet.http.HttpServlet; > import javax.servlet.http.HttpServletRequest; > import javax.servlet.http.HttpServletResponse; > > import org.json.simple.JSONObject; > > import com.google.appengine.api.quota.QuotaService; > import com.google.appengine.api.quota.QuotaServiceFactory; > import com.google.appengine.api.users.User; > import com.google.appengine.api.users.UserService; > import com.google.appengine.api.users.UserServiceFactory; > > public class NoopServlet extends HttpServlet { > /** > * > */ > private static final long serialVersionUID = 1L; > private static final Logger log = > Logger.getLogger(NoopServlet.class.getName()); > > @Override > protected void doGet(HttpServletRequest req, HttpServletResponse > resp) > throws ServletException, IOException { > QuotaService qs = QuotaServiceFactory.getQuotaService(); > long start = qs.getCpuTimeInMegaCycles(); > > JSONObject obj = new JSONObject(); > > SubqUser sUser = null; > start = qs.getCpuTimeInMegaCycles(); > PersistenceManager pm = PMF.get().getPersistenceManager(); > long end = qs.getCpuTimeInMegaCycles(); > double cpuSeconds = qs.convertMegacyclesToCpuSeconds(end - > start); > obj.put("pmCpu", cpuSeconds); > > cpuSeconds = qs.convertMegacyclesToCpuSeconds(end - start); > obj.put("totalCpu", cpuSeconds); > System.out.println(this.getClass().getName()+" used " + > cpuSeconds+ " cpu seconds"); > resp.getWriter().print(obj.toJSONString()); > } > > @Override > protected void doPost(HttpServletRequest req, HttpServletResponse > resp) > throws ServletException, IOException { > // TODO Auto-generated method stub > doGet(req, resp); > } > > } > > package reminder; > > import javax.jdo.JDOHelper; > import javax.jdo.PersistenceManagerFactory; > > public final class PMF { > private static final PersistenceManagerFactory pmfInstance = > JDOHelper.getPersistenceManagerFactory("transactions- > optional"); > > private PMF() {} > > public static PersistenceManagerFactory get() { > return pmfInstance; > } > > > > } -- You received this message because you are subscribed to the Google Groups "Google App Engine" 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?hl=en.
