私は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:
ユーザーが応答を受け取る前に文書の作成を完了する必要がありますか?通常、私は資産の作成を遅らせ、インタラクティブなユーザーに最初にhttp応答を与え、タスクで文書を作成します。 – Sniggerfardimungus
ありがとうございます。はい、私たちのユーザーは、文書が準備できるまで待っていて、応答を得た後、ファイルに入ることができます。 – Amit
ユーザーへの応答は、作成された文書の内容に依存しますか?非同期タスクでドキュメントを作成し、呼び出し元にアクセスしようとする前に作成が完了していれば、呼び出し元に新しいドキュメントにアクセスできるようにハンドルを与えることができます。作成が完了する前に要求が到着した場合、リクエスタは最初の呼び出し中ではなく、その時点で遅延する可能性があります。 – Sniggerfardimungus