Google app engine googleappengine代码的优化

Google app engine googleappengine代码的优化,google-app-engine,Google App Engine,谷歌应用程序引擎(GoogleAppEngine)对我大喊大叫,说这段代码使用了大量配额 我能做些什么来减轻它的重量 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { PersistenceManager pm = PMF.get().getPersistenceManager();

谷歌应用程序引擎(GoogleAppEngine)对我大喊大叫,说这段代码使用了大量配额

我能做些什么来减轻它的重量

public  void doGet(HttpServletRequest req, HttpServletResponse  resp)
        throws IOException, ServletException {

             PersistenceManager pm = PMF.get().getPersistenceManager();
             HttpSession session = req.getSession();

             if(session.isNew()){
                 session.invalidate();
                 resp.sendRedirect("/login.html");
             }

             else {

             User usr22 = (User) session.getAttribute("username");


             String query = "select from veep.User where email == '"+ usr22.getEmail() +"'";

         List<User> users = (List<User>) pm.newQuery(query).execute();

            User usr = users.get(0);

               System.out.println("estou no SERVMVCCCCC!!" + usr);

           List<String> discsNAct = usr.getDisciplinasNAct();
           List<String> discsActs = usr.getDisciplinasAct();


                req.setAttribute("nact", discsNAct);
                req.setAttribute("act", discsActs);
                req.setAttribute("discs", discsNAct);

            session.invalidate();
            session = req.getSession();
            session.setAttribute("username", usr);
            session.setAttribute("loggedIn", new String("true"));

                RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/conta_d.jsp");
                dispatcher.forward(req, resp);              


                try {
                    pm.makePersistent(usr);
                } finally {
                    pm.close();
                }
             }
        }
public void doGet(HttpServletRequest-req、HttpServletResponse-resp)
抛出IOException、ServletException{
PersistenceManager pm=PMF.get().getPersistenceManager();
HttpSession session=req.getSession();
if(session.isNew()){
session.invalidate();
响应sendRedirect(“/login.html”);
}
否则{
用户usr22=(用户)session.getAttribute(“用户名”);
String query=“从veep.User中选择,其中email==”+usr22.getEmail()+”;
List users=(List)pm.newQuery(query.execute();
User usr=users.get(0);
System.out.println(“estou no SERVMVCCCC!!”+usr);
List DiscsAct=usr.getStripasNact();
List discsActs=usr.getStructureAsact();
请求设置属性(“nact”,DiscsAct);
请求设置属性(“act”,discsActs);
要求设置属性(“光盘”,DiscsAct);
session.invalidate();
session=req.getSession();
session.setAttribute(“用户名”,usr);
setAttribute(“loggedIn”,新字符串(“true”);
RequestDispatcher=getServletContext().getRequestDispatcher(“/conta_d.jsp”);
调度器转发(req,resp);
试一试{
项目经理(usr);
}最后{
pm.close();
}
}
}

我们没有
usr.getDistrictasNact()
usr.getDistrictasAct
的代码,因此很难了解CPU的使用情况。还有,为什么要获取会话、使其无效并再次获取它呢?getDistrictas*只是一个简单的返回列表。我想阻止具有有效会话的用户访问“else”代码。我尝试了session==null,但它不起作用,所以我就是这样做的。你试过安装AppStats吗?AppStats通常会向您显示哪些代码行(意外地)对数据存储进行了大量RPC调用。