2016-03-29 3 views
1

У меня есть проект в google-приложении, и есть несколько функций, используя API-интерфейс Java-интерфейса .Время отклика и оптимизация медленного отклика двигателя

Кроме того, я использую «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 мс. есть способ, которым я могу его оптимизировать? даже заплатить больше за Google.

мы можем видеть, что 700 мс время принадлежит UrlFetch

we can see here the time of the response:

+0

Должно ли создание документа завершить до того, как пользователь получит ответ? Как правило, я задерживаю создание актива, предоставляя интерактивному пользователю первый ответ на HTTP, создавая документ в задаче. – Sniggerfardimungus

+0

Благодарим за отзыв. да, наш пользователь ждет, пока документ будет готов, а затем, после получения ответа, он может войти в файл. – Amit

+0

Отклика на пользователя зависит от содержимого созданного документа? Вы все равно можете создать документ в async-задаче и предоставить вызывающему агенту дескриптор, который позволит им получить доступ к новому документу, при условии, что создание закончится, прежде чем они попытаются получить к нему доступ. Если запрос приходит до завершения создания, запросчик может быть задержан в этой точке, а не во время начального вызова. – Sniggerfardimungus

ответ

0

Вы можете использовать Appstats для профилирования удаленного вызова процедур (RPC) производительность вашего приложения. RPC может заставить ваше приложение работать медленно.

Чтобы сохранить приложение быстро, вы должны знать:

  • ваше приложение ненужных вызовов RPC?
  • Должен ли он кэшировать данные вместо повторных вызовов RPC для получения одинаковых данных?
  • Будет ли ваше приложение работать лучше, если несколько запросов выполняются параллельно, а не последовательно?

Appstats проверяет ваше приложение, если оно использует вызовы RPC наиболее эффективным способом, позволяя вам профилировать ваши вызовы RPC. Appstats позволяет отслеживать все вызовы RPC для данного запроса и отчеты о времени и стоимости каждого вызова.

Смежные вопросы