在一個文件夾中我有34,000個配置文件。每個文件都包含一個具有唯一配置規範的對象。下面是一個文件內容的例子:使用PHP如何將1000個配置文件加載到數據庫中?
$obj = new obj();
$obj->name = "name":
$obj->location "nyc";
...
...
etc
每個文件大約100到200行,大小約17k。
要獲得這些到數據庫中,我有以下功能:
function retrieve_files(){
$objs = array();
$path = 'filefolder';
//retrieve a list of files as an array of objects
$files = get_files('/\.inc$/', $path, 'filename', 0);
foreach ($files as $file) {
include_once $path.'/'.$file->filename;
$objs[$obj->name] = $obj;
}
return $objs;
}
一旦返回的對象數組,它環繞在另一個函數,系列化,每個被保存到數據庫中。
目前,我的服務器是一個英特爾雙核3.06 Ghz處理器與8 Gig的RAM。我在Ubuntu 12.04中通過命令行運行腳本。
由於該腳本處理CPU最大值爲100%,並且內存不斷攀升,直到所有8個演出已最大化。該腳本然後崩潰。
如何讓這個腳本或整個過程更高效?最好我寧願留在這個函數的範圍內。我也希望一次完成。有沒有一種方法來重構這個使用較少資源或釋放資源的陣列創建和循環迭代?