首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用appstats优化性能

如何使用appstats优化性能
EN

Stack Overflow用户
提问于 2013-09-13 16:59:49
回答 1查看 122关注 0票数 1

我对性能有问题,我不知道它来自哪里。

createLogoutURL和第一个数据存储查询之间的差距是巨大的……它位于以下代码段之间:

代码语言:javascript
复制
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);

代码语言:javascript
复制
@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;
}

有人知道为什么它这么慢吗?

EN

回答 1

Stack Overflow用户

发布于 2013-09-22 00:22:46

从好的方面来说,appstats已经为您将其范围缩小到三行:

代码语言:javascript
复制
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上完全解决的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18782264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档