3

我目前有一个交易虚拟物品的应用程序,并且每秒至少向主机服务器发出 40 个 CFHTTP 请求。

我遇到的问题是,我的 CFHTTP 调用需要 400 毫秒以上才能返回响应,这意味着我的应用程序错过了它找到的 99% 的交易,因为那里有很多其他竞争应用程序正在获得更快的响应。

我一直在努力寻找这种情况的原因和/或解决方案,因此我在 CF 和 C# 中编写了一个脚本,该脚本使 10 个 http 请求对每个请求进行计时,从而产生以下响应时间:

在 CF 中使用以下浏览器:

  • IE9:384、444、302、570、535、317、510、349、357、467 - 平均 423.5ms
  • Firefox 27.0.1:354、587、291、480、437、304、537、322、286、652 - 平均 425 毫秒
  • 铬: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 毫秒

正如您所看到的,在 C# 控制台应用程序中发出 HTTPWebRequest 时存在很大的性能差异,这让我认为 CFHTTP 请求可能被限制了?还是可能与浏览器有关?

任何帮助将不胜感激!

4

1 回答 1

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;
于 2014-04-21T20:17:29.983 回答