2014-02-27 138 views
3

我目前有一個應用程序可以交易虛擬物品,並且每秒向主機的服務器發送至少40個CFHTTP請求。優化HTTP請求/瀏覽器限制請求?

我遇到的問題是,它從我的CFHTTP調用的400ms +以上的任何地方返回響應,這意味着我的應用程序在99%的交易中找不到它,因爲還有很多其他競爭應用程序那裏得到更快的反應。

我已經在努力尋找原因和/或對這種情況的解決方案,所以我在這兩個CF和C#,使10個http請求定時每一個這就造成了以下響應時間寫了一個腳本:

在CF使用以下瀏覽器:

  • IE9:384,444,302,570,535,317,510,349,357,467 - 平均423.5ms
  • 火狐27.0.1:354,587, 291,480,437,304,537,322,286,652 - 平均425ms
  • 鉻:300,32 8,328,639,285,259,348,291,299,414 - 平均349.7ms

在C#控制檯應用程序:

597,43,96,52,44,305,67, 91,54,270 - 平均值161.9ms

正如你所看到的,在C#控制檯應用程序中創建一個HTTPWebRequest會有很大的性能差異,這使得我認爲CFHTTP請求可能被限制了嗎?或者它可能與瀏覽器有關?

任何幫助將不勝感激!

+0

不要緊,通過瀏覽器運行它;設置一個CF頁面,執行一些cfhttp請求並將其作爲計劃任務運行,不輸出任何內容,並記錄日誌以記錄時間。不應該到C#控制檯我倒是希望 – duncan

+0

大量不同剛剛創建計劃任務調用的測試和時間分別爲 289,311,408,513,5195,313,352,321,301,358所以幾乎像以前一樣... – CPB07

回答

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; 
+0

+1給你更多的代表。 –

+0

沒有沒有嘗試過(因爲我不知道如何使用CF類的Java類),但會試一試,看看我如何繼續... – CPB07