Получение TTFB (время до первого байта) для Запроса HTTP

Я никогда не разрабатывал программное обеспечение, следуя подходу реактивного программирования, я не знаю много об этом ... но я знаю, что это парадигма программирования, поэтому она определяет, как вы должны писать исходный код, как у вас есть структурировать его и т. д.

С моей точки зрения, RxJava не будет рассматриваться в качестве фреймворка в том смысле, что вы используете технологию для взаимодействия с участниками, живущими вне вашего приложения. RxJava будет расширением языка программирования (Java), у которого нет шансов написать реактивный код с ним.

Так что я не вижу проблем с использованием RxJava для написания исходного кода шестиугольника.

6
задан jens 14 June 2012 в 12:12
поделиться

2 ответа

Используя текущее значение открыть / читать В паре возможна только одна другая временная точка - между ними.

Вызов open () должен отвечать за фактическую отправку HTTP-запроса и должен (AFAIK) возвращаться, как только это произойдет. был отправлен, готовый к тому, что ваше приложение действительно прочитало ответ через read () .

Технически это, вероятно, тот случай, когда длинный ответ сервера сделает ваш блок приложения при вызове read () , в этом случае это не TTFB.

Однако, если объем данных невелик, тогда выиграет ' В любом случае, между TTFB и TTLB не будет большой разницы. Для большого объема данных просто измерьте, сколько времени потребуется read () , чтобы вернуть первый наименьший возможный фрагмент.

2
ответ дан 9 December 2019 в 22:39
поделиться

По умолчанию реализация открытия HTTP в urllib2 не имеет обратных вызовов при выполнении чтения. Средство открытия OOTB для протокола HTTP - urllib2.HTTPHandler , которое использует httplib.HTTPResponse для фактического чтения через сокет.

Теоретически, вы можете написать свои собственные подклассы HTTPResponse и HTTPHandler, и установите его как средство открытия по умолчанию в urllib2, используя install_opener . Это было бы нетривиально, но не мучительно, так что если вы в основном копируете и вставляете текущую реализацию HTTPResponse из стандартной библиотеки и настраиваете там метод begin () , чтобы выполнить некоторую обработку или обратный вызов при чтении из начинается сокет.

1
ответ дан 9 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: