Google app engine googleappengine代码的优化
谷歌应用程序引擎(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();
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调用。