我正在使用API(讓我們假裝它的Facebook)來收集兩個給定日期之間的數據。由於API限制(像大多數),我一次只能抓這麼多,因此必須通過結果尋找路線。多個命中API將服務器帶到它的膝蓋
這裏是我的問題/問題,但..它是更好地
- 獲得較少結果反饋,並讓更多的對API的調用
- 得到更多的返回結果,並減少對API的調用
我運行一個雲服務器的4GB實例..
我在看的數據是XML格式,幷包含約20K條目。每個條目可能包含另外20個標籤。一旦完全拉下來的數據最終大概是10MB ..我的問題是我的問題是,當我的服務器正在打api時,收集這個信息的CPU和內存秒殺近100%。我試過每次檢索500個,一次1000個,每次5000個..這是我需要一次收集20個的東西..或者還有其他我應該看的東西嗎?
我不知道提供什麼其他,如果有什麼我可以提供只是讓我知道
更新基於答案
- 我與風暴的需求,它運行主機完美的爲我們和似乎是偉大的硬件 - https://www.stormondemand.com/cloud-server/
- 我使用HPricot解析XML(可能可以優化,我不是專家)
- 我確實需要所有的數據,此服務不提供導出,僅提供API。
EDIT [幫人磕磕絆絆關於這個版本] 我從角度來說,Hpricot切換到引入nokogiri,要快得多。 此外,我在內存中構建了一個XML文件,顯然這是非常激烈的,而且是一項非常耗時的任務。我已經把這個操作從大約10分鐘縮短到僅僅1分鐘,通過修復這兩件事情。
你需要**所有**的數據嗎?你能改進你的查詢,以便你只得到你想要的東西嗎?服務器運行什麼webserver? – tjameson 2011-04-05 17:38:57