2016-03-29 11 views
1

私はGoogleアプリケーションエンジンに関するプロジェクトを持っており、 ドライブ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以上かかります。私はそれを最適化する方法がありますか? Googleにもっと払うことさえある。

は、我々は時間の700ミリ秒では、リモートプロシージャコール(RPC)アプリケーションのパフォーマンスをプロファイリングするためにAppstatsを使用することができますURLFetchの

we can see here the time of the response:

+0

ユーザーが応答を受け取る前に文書の作成を完了する必要がありますか?通常、私は資産の作成を遅らせ、インタラクティブなユーザーに最初にhttp応答を与え、タスクで文書を作成します。 – Sniggerfardimungus

+0

ありがとうございます。はい、私たちのユーザーは、文書が準備できるまで待っていて、応答を得た後、ファイルに入ることができます。 – Amit

+0

ユーザーへの応答は、作成された文書の内容に依存しますか?非同期タスクでドキュメントを作成し、呼び出し元にアクセスしようとする前に作成が完了していれば、呼び出し元に新しいドキュメントにアクセスできるようにハンドルを与えることができます。作成が完了する前に要求が到着した場合、リクエスタは最初の呼び出し中ではなく、その時点で遅延する可能性があります。 – Sniggerfardimungus

答えて

0

属していることがわかります。 RPCを使用すると、アプリケーションの動作が遅くなる可能性があります。

高速なアプリケーションを維持するために、あなたが知っておく必要があります。

  • が不要なRPC呼び出しを行うアプリケーションですか?
  • 同じデータを取得するために繰り返しRPC呼び出しを行う代わりに、データをキャッシュする必要がありますか?
  • 複数のリクエストを直列ではなく並列で実行すると、アプリケーションのパフォーマンスは向上しますか?

RPC呼び出しをプロファイリングできるようにすることで、最も効率的な方法でRPC呼び出しを使用している場合、Appstatsはアプリケーションを確認します。 Appstatsを使用すると、特定の要求に対するすべてのRPC呼び出しをトレースし、各呼び出しの時間とコストをレポートできます。

関連する問題