[英]How to Optimize Performance with appstats
我在性能上有問題,我不知道它從哪里來。
createLogoutURL和第一個數據存儲區查詢之間的差距非常大……在以下代碼段之間:
loginInfo.setLogoutUrl(userService.createLogoutURL(requestUri));
...
ch.zhaw.ams.server.auth.user.User userAms = DatabaseHelper.findByParama(user.getEmail(), "emailAddress",
"String", ch.zhaw.ams.server.auth.user.User.class);
@Override
public GoogleLoginInfo login(String requestUri) {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
GoogleLoginInfo loginInfo = new GoogleLoginInfo();
if (user != null) {
loginInfo.setLoggedIn(true);
loginInfo.setEmailAddress(user.getEmail());
loginInfo.setNickname(user.getNickname());
loginInfo.setLogoutUrl(userService.createLogoutURL(requestUri));
loginInfo.setIsGoogleLogin(true);
ch.zhaw.ams.server.auth.user.User userAms = DatabaseHelper.findByParama(user.getEmail(), "emailAddress",
"String", ch.zhaw.ams.server.auth.user.User.class);
if (userAms != null) {
loginInfo.setFirstname(userAms.getFirstName());
loginInfo.setLastname(userAms.getLastName());
}
// Set Memcache
try {
SessionCache.setupCache(user.getEmail());
loginInfo.setIsCached(true);
} catch (CacheException e) {
// TODO Auto-generated catch block
e.printStackTrace();
loginInfo.setIsCached(false);
}
} else {
loginInfo.setLoggedIn(false);
loginInfo.setLoginUrl(userService.createLoginURL(requestUri));
}
return loginInfo;
}
有人知道為什么它這么慢嗎?
從好的方面來說,appstats已將其縮小為三行:
loginInfo.setLogoutUrl(userService.createLogoutURL(requestUri));
loginInfo.setIsGoogleLogin(true);
ch.zhaw.ams.server.auth.user.User userAms = DatabaseHelper.findByParama(user.getEmail(), "emailAddress",
"String", ch.zhaw.ams.server.auth.user.User.class)
您可能會四處弄弄,並嘗試找出導致延遲的行。 我最好的猜測是這是您第一次加載ch.zhaw.ams.server.auth.user.User.class類。 此類可能導致其他類別加載。 您看到的長時間延遲可能只是類加載時間。
您可能可以添加啟動處理程序來加載其中的某些類,因此希望它很少出現,但是您會在GAE上看到很多關於Java類加載時間的抱怨。 這不是可以在GAE上完全解決的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.