我正在編寫一個PHP函數,它需要遍歷指針數組和每個項目,並將這些數據(來自MySQL數據庫或平面文件)引入。任何人都可以有任何優化這個想法,因爲有可能成千上萬的迭代?PHP循環性能優化
我的第一個想法是我有一個緩存數據的靜態數組,我的工作和任何修改將只是改變緩存的數組,然後在最後我可以刷新到磁盤。但是,如果我只在陣列中保留大約30個,則在超過1000個項目的循環中,這將毫無用處。每個項目不是太大,但是其中有1000多個內存太多,因此需要磁盤存儲。
數據只是gzipped序列化的對象。目前我正在使用數據庫來存儲數據,但我想可能平面文件會更快(我不關心併發問題,我不需要解析它,只是解壓縮和反序列化)。我已經有了一個自定義迭代器,它一次只能提取5個項目(以減少數據庫連接)並將它們存儲在此緩存中。但是,當我需要迭代數千個時,使用30的緩存是相當無用的。
基本上我只是需要一種方法來快速迭代這些很多項目。
我將盡力解釋自己更清楚...我正在寫一個神經元網絡,所以我需要迭代一些神經元對象來影響他們的一些數據然後保存它,進入下一個等等等等1000+神經元。然後我需要再次迭代(稱爲反傳播)。 我認爲最好的解決方案是在內存和IO訪問之間找到一個媒介。如果我一次加載100個對象,這意味着更少的IO但更多的內存。 – Louis 2009-12-17 02:33:08