Ускорьте 20-секундный вход в OpenID через RPXNow

Я реализовал RPXNow для нескольких приложений как отличную абстракцию для OpenID и OAuth, чтобы разрешить вход в Google и Facebook. Моя единственная жалоба заключается в том, что регистрация занимает слишком много времени. После нажатия на кнопку "Войти" Google уходит 8-10 секунд на завершение всего процесса, и это с моего локального компьютера! Я только спрашиваю https://rpxnow.com/api/v2/auth_info один раз за строку ответа от моего AccountController, который включает в себя результат входа и профиль пользователя.

Поэтому я решил вместо этого реализовать DotNetOpenAuth. Используя Google в качестве моего провайдера, для входа в систему все равно требуется 7-9 секунд! Это не может быть мой уровень хранилища, поскольку вход в Forms происходит мгновенно. Следовательно, я должен приписать период ожидания лагу между моей системой, RPXNow и провайдером аутентификации. Та же самая задержка имеет место на моих основных и премиальных счетах RPXNow.

Вход в Google OpenID в Stackru всегда кажется мгновенным. Как я могу ускорить вход в OpenID? Я готов отказаться от RPXNow, если смогу уменьшить скорость входа до 1-3 секунд.


Изменить: ОК, поэтому я пошел и рассчитал, сколько времени фактически занимает мой запрос RPXNow, и это меньше, чем две секунды (1984 мс и 2100 мс с холодного старта), но весь процесс занимает 7-8* секунд. Может быть, это перенаправление или окно входа Google. Мне придется провести еще несколько диагностик.

  • Теплое начало. Сценарии RPXNow, изображения и DNS были кэшированы.

Дальнейшее тестирование: я тестирую это по ADSL-соединению на 384 кбит / с, что все еще есть у большинства людей в SA. Вот временная разбивка для входа в систему с помощью Google:

Разрушение холодного старта:

  1. Загрузить виджет RPXNow: 3.1s
  2. Загрузить всплывающее окно: 5.9с
  3. Нажмите на провайдера Google: пренебречь
  4. Загрузить окно входа в Google: 4.1s
  5. Отправить данные Google: не учитывается
  6. Ожидание перенаправления RPX: 7,7 с (включая время аутентификации 1,9 с)

Общее время регистрации, кроме ввод данных:

20,8 секунды.

Слишком долго.

Разбивка теплого старта:

  1. Загрузить RPXNow виджет: 2.2s
  2. Вход через Google: 6,5 с (включая время авторизации 1,8 с)

Общее время регистрации, кроме ввод данных:

8,7 секунды.

Едва приемлемый.

1 ответ

Если честно, нам нужно увидеть ваш код. Некоторые общие идеи производительности:

Кэшируйте, когда можете, либо в пользовательском сеансе, либо в HttpCache, если это переменная уровня приложения, которую вы постоянно пересчитываете. Избегайте записи файлов на диск. Честно говоря, звучит так, будто вы сталкиваетесь

  1. Серьезно не крутая задержка в сети
  2. Состояние ожидания занятости, при котором что-то ожидает получения заблокированного ресурса
  3. Очень плохой алгоритм делает что-то плохое
  4. Записывать что-то на диск много

Мое лучшее предложение состоит в том, чтобы вы пошагово просматривали свой код и пытались протестировать его локально. Подумайте об использовании секундомера в System.Diagnostic и регистрации времени загрузки, где вы подозреваете код ошибки. Выделите проблему. Похоже, что ваша основная проблема с производительностью имеет мало общего с OAuth или RPX, по моему мнению.

Чтобы увеличить время загрузки страницы, попробуйте запустить страницу через Google PageSpeed ​​Insights и по возможности минимизировать JS и CSS.

Другие вопросы по тегам