Почему делает производительность объекта HttpWebRequest, улучшаются при использовании Скрипача?

Просмотрите тему для упражнения, если тема похожа на @ style / AppTheme.NoActionBar или одну тему без ActionBar, попробуйте добавить цвет, у вас должен быть стиль (v21), например, такой:

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>    
</style>

изменить его на:

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@color/colorPrimaryDark</item>
</style>
10
задан Troy Hunt 21 June 2009 в 07:04
поделиться

4 ответа

Похоже, теперь я смог увеличить пропускную способность (вдвое больше, чем я получал с открытым Fiddler), установив максимальное количество подключений в App.config:

<system.net>
  <connectionManagement>
    <add address="*" maxconnection="30" />
  </connectionManagement>
</system.net>

Очень доволен результатом, но все еще немного озадачен, почему открытие Fiddler так резко изменило результаты.

14
ответ дан 3 December 2019 в 19:35
поделиться

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

var req = WebRequest.Create(url);
using (WebResponse resp = req.GetResponse())
{
    using (Stream s = resp.GetResponseStream())
    {
        using (var sr = new StreamReader(s, Encoding.ASCII))
        {
            return sr.ReadToEnd();
        }
    }
}

Далее, к вашему сведению, Fiddler действует как прокси. Если ваш прокси-сервер по умолчанию был настроен для использования сценария для настройки конфигурации прокси-сервера, то мне интересно, может ли запуск Fiddler не сократить время, необходимое для настройки сценария. Это может произойти только один раз, а не по каждому запросу.

5
ответ дан 3 December 2019 в 19:35
поделиться

I had a problem similar to yours and wanted to share my resolution.

In short, I had a console program that was making HTTP requests and would, after 15 minutes or so, timeout. However, if I used Fiddler then I never experienced timeouts, even after having it run for days straight.

I tried setting the maxconnections property in App.config, but that didn't seem to help at all. I then went in and each and every reference to HttpWebRequest, HttpWebResponse, and the stream objects used to read/write data to these objects within using blocks.

That seems to have done the trick. I've been running for almost 24 hours now without a timeout and without Fiddler running.

1
ответ дан 3 December 2019 в 19:35
поделиться

Способ запроса вызывает создание нового сеанса для каждого вызова, что накладно , возможно, скрипач добавляет сеанс к вашим запросам ....

попробуйте

частный статический CookieContainer _cookieContainer = new CookieContainer ();

_httpWebRequest.CookieContainer = _cookieContainer; // с переработкой контейнера cookie

0
ответ дан 3 December 2019 в 19:35
поделиться
Другие вопросы по тегам:

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