Оптимизация 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;