Ускорьте 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:
Разрушение холодного старта:
- Загрузить виджет RPXNow: 3.1s
- Загрузить всплывающее окно: 5.9с
- Нажмите на провайдера Google: пренебречь
- Загрузить окно входа в Google: 4.1s
- Отправить данные Google: не учитывается
- Ожидание перенаправления RPX: 7,7 с (включая время аутентификации 1,9 с)
Общее время регистрации, кроме ввод данных:
20,8 секунды.
Слишком долго.
Разбивка теплого старта:
- Загрузить RPXNow виджет: 2.2s
- Вход через Google: 6,5 с (включая время авторизации 1,8 с)
Общее время регистрации, кроме ввод данных:
8,7 секунды.
Едва приемлемый.
1 ответ
Если честно, нам нужно увидеть ваш код. Некоторые общие идеи производительности:
Кэшируйте, когда можете, либо в пользовательском сеансе, либо в HttpCache, если это переменная уровня приложения, которую вы постоянно пересчитываете. Избегайте записи файлов на диск. Честно говоря, звучит так, будто вы сталкиваетесь
- Серьезно не крутая задержка в сети
- Состояние ожидания занятости, при котором что-то ожидает получения заблокированного ресурса
- Очень плохой алгоритм делает что-то плохое
- Записывать что-то на диск много
Мое лучшее предложение состоит в том, чтобы вы пошагово просматривали свой код и пытались протестировать его локально. Подумайте об использовании секундомера в System.Diagnostic и регистрации времени загрузки, где вы подозреваете код ошибки. Выделите проблему. Похоже, что ваша основная проблема с производительностью имеет мало общего с OAuth или RPX, по моему мнению.
Чтобы увеличить время загрузки страницы, попробуйте запустить страницу через Google PageSpeed Insights и по возможности минимизировать JS и CSS.