У меня проблема с производительностью, и я не знаю, откуда она взялась.Как оптимизировать производительность с помощью 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;
}
ли кто-нибудь имеет представление о том, почему его так медленно?
Является ли движок google-приложения по-прежнему запускать новый JVM за запрос (и останавливать его при завершении) или это просто слухи? –
Я не знаю ... – Sam
Если это так, значит, вы платите стоимость запуска, стоимость разогрева кода по каждому запросу. Должен быть закон снова такой неэффективности ИМХО. Возможно, вам стоит рассмотреть альтернативный сервер приложений, все остальное будет намного быстрее. Столько 100 раз быстрее. –