App引擎响应时间慢,优化

时间:2016-03-29 06:16:20

标签: java google-app-engine google-drive-api

我在谷歌应用引擎上有一个项目,有几个功能使用 驱动Java API。

此外,我正在使用" com.google.appengine.api.users.User;"

当我使用某些功能时,例如:createDocument:

public FileResponse createDocument(FileRequest file, @Named("visibility") @Nullable String visibility, User user) throws IOException, OAuthRequestException,
        BadRequestException
{
    Utils.validateAuthenticatedUser(user);
    file.setValidator(new FileRequestValidator(FileRequestValidator.FileRequestType.CREATE));
    file.validate(file);
    Drive drive = new Drive.Builder(Globals.httpTransport, Globals.jsonFactory, Authenticator.credential(Constants.DRIVE_SCOPE, file.getDomainUser())).setApplicationName(
            "My - APP").build();

    File newFile = null;
    try
    {
        Drive.Files.Insert insert = drive.files().insert(file.getFile());
        if (visibility != null) insert.setVisibility(visibility);
        newFile = insert.execute();
        return new FileResponse(newFile);
    } catch (Exception e)
    {
        logger.severe("An error occurred: " + e.getMessage());
        throw new OAuthRequestException(e.getMessage());
    }
}

此功能正常,但需要920 ms。有一种方法可以优化它吗?甚至为谷歌付出更多。

我们可以看到700毫秒的时间属于urlFetch

we can see here the time of the response:

1 个答案:

答案 0 :(得分:0)

您可以使用Appstats来分析应用程序的远程过程调用(RPC)性能。 RPC可以使您的应用程序运行缓慢。

为了确保您的应用程序快速,您需要知道:

  • 您的应用程序是否进行了不必要的RPC调用?
  • 它应该缓存数据而不是重复进行RPC调用以获取相同的数据吗?
  • 如果并行执行多个请求而不是串行执行,您的应用程序会更好吗?

Appstats通过允许您配置RPC调用来验证您的应用程序是否以最有效的方式使用RPC调用。 Appstats允许您跟踪给定请求的所有RPC调用,并报告每次调用的时间和成本。