Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java App引擎响应时间慢和优化_Java_Google App Engine_Google Drive Api - Fatal编程技术网

Java App引擎响应时间慢和优化

Java App引擎响应时间慢和优化,java,google-app-engine,google-drive-api,Java,Google App Engine,Google Drive Api,我有一个关于GoogleAppEngine的项目,有几个函数使用 驱动javaapi 另外,我使用的是“com.google.appengine.api.users.User;” 当我使用某些函数时,例如:createDocument: public FileResponse createDocument(FileRequest file, @Named("visibility") @Nullable String visibility, User user) throws IOExceptio

我有一个关于GoogleAppEngine的项目,有几个函数使用 驱动javaapi

另外,我使用的是“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毫秒。有没有一种方法可以优化它?甚至向谷歌支付更多

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

您可以使用来评测应用程序的远程过程调用(RPC)性能。RPC会使应用程序运行缓慢

要保持应用程序的快速运行,您需要知道:

  • 您的应用程序是否正在进行不必要的RPC调用
  • 它应该缓存数据而不是重复进行RPC调用以获取相同的数据吗
  • 如果并行执行多个请求而不是串行执行多个请求,应用程序的性能会更好吗
Appstats通过允许您评测RPC调用来验证应用程序是否以最有效的方式使用RPC调用。Appstats允许您跟踪给定请求的所有RPC调用,并报告每次调用的时间和成本。

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

要保持应用程序的快速运行,您需要知道:

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

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

是否必须在用户收到响应之前完成文档的创建?通常,我会延迟资产的创建,首先给交互用户http响应,然后在任务中创建文档。是的,我们的用户正在等待文档准备就绪,然后在收到响应后,他可以进入文件。对用户的响应是否取决于所创建文档的内容?您仍然可以在异步任务中创建文档,并为调用者提供一个句柄,允许他们访问新文档,前提是创建在他们尝试访问它之前完成。如果请求在创建完成之前到达,请求者可以在该点延迟,而不是在初始调用期间。是否必须在用户收到响应之前完成文档的创建?通常,我会延迟资产的创建,首先给交互用户http响应,然后在任务中创建文档。是的,我们的用户正在等待文档准备就绪,然后在收到响应后,他可以进入文件。对用户的响应是否取决于所创建文档的内容?您仍然可以在异步任务中创建文档,并为调用者提供一个句柄,允许他们访问新文档,前提是创建在他们尝试访问它之前完成。如果请求在创建完成之前到达,请求者可以在该点延迟,而不是在初始调用期间。