Оптимизация HTTP-запросов / запросов регулирования браузера?

В настоящее время у меня есть приложение, которое торгует виртуальными предметами и делает не менее 40 запросов CFHTTP в секунду на сервер хоста.

Проблема, с которой я сталкиваюсь, заключается в том, что моему вызову CFHTTP от 400 мс и более требуется ответ, который означает, что мое приложение пропускает 99% найденных сделок, поскольку существует множество других конкурирующих приложений, которые получают более быстрый ответ.

Я изо всех сил пытался найти причину и / или решение этой ситуации, поэтому я написал сценарий на обоих языках CF и C#, который выполняет 10 запросов HTTP по времени, каждый из которых приводит к следующему времени отклика:

В CF используются следующие браузеры:

  • IE9: 384, 444, 302, 570, 535, 317, 510, 349, 357, 467 - в среднем 423,5 мс
  • Firefox 27.0.1: 354, 587, 291, 480, 437, 304, 537, 322, 286, 652 - в среднем 425 мс
  • Chrome: 300, 328, 328, 639, 285, 259, 348, 291, 299, 414 - в среднем 349,7 мс

В C# Консольное приложение:

597, 43, 96, 52, 44, 305, 67, 91, 54, 270 - в среднем 161,9 мс

Как вы можете видеть, существует большая разница в производительности при создании HTTPWebRequest в консольном приложении C#, что заставляет меня думать, что, возможно, запросы CFHTTP блокируются? Или это может быть связано с браузерами?

Любая помощь будет принята с благодарностью!

1 ответ

У меня нет достаточно комментариев, поэтому я буду задавать вопросы здесь. Вы пробовали классы Java, чтобы сделать вызовы http?

    obj = CreateObject("java", "org.apache.commons.httpclient.HttpClient");
    get = CreateObject("java", "org.apache.commons.httpclient.methods.GetMethod");
    header = CreateObject("java", "org.apache.commons.httpclient.Header");

    obj.init();
    tmp = get.init("http://google.com");
    res = obj.executeMethod(tmp);
    return res.response;
Другие вопросы по тегам