Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > dbase


Автор: izOne 2.6.2005, 14:06
Есть фалы dbf. Один > 29000 записей. При работе срипта потребление памяти возрастает ~100МБ, причем если файл обрабатывать повторно в том же скрипте - еще +100Мб.
Код

$this->dbfPhpId = dbase_open($this->path2dbf, 0);
$dbase_numrecords    = dbase_numrecords($this->dbfPhpId);
$dbase_numfields    = dbase_numfields($this->dbfPhpId);
for($i=1; $i <= $dbase_numrecords; $i++){
    if($row = dbase_get_record_with_names($this->dbfPhpId, $i)){
        // continue;
    }
}
sleep(1);
dbase_close($this->dbfPhpId);


Если убрать комментарии в условии if{...}, потребление памяти не возрастает

Код

$this->dbfPhpId = dbase_open($this->path2dbf, 0);
$dbase_numrecords    = dbase_numrecords($this->dbfPhpId);
$dbase_numfields    = dbase_numfields($this->dbfPhpId);
for($i=1; $i <= $dbase_numrecords; $i++){
    if($row = dbase_get_record_with_names($this->dbfPhpId, $i)){
        continue;
    }
}
sleep(1);
dbase_close($this->dbfPhpId);


Проблема в том, что в моем скрипте в if'е идет нормальный код, но память все равно "отжирается". Где могут быть грабли?

Автор: Mal Hack 2.6.2005, 16:19
dbase_pack юзаешь?

Цитата(izOne @ 2.6.2005, 15:06)
При работе срипта потребление памяти возрастает ~100МБ

Ну а что ты при 29000 записях хочешь smile Хотя перебор есть конечно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)