Проблема с памятью

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
Gilman
Сообщения: 8
Зарегистрирован: 08 мар 2013, 00:49

Проблема с памятью

Сообщение Gilman » 07 май 2013, 20:25

Сделал парсер репостов из вк
// The following code is required to properly run XWeb Human Emulator
require("../../Templates/xweb_human_emulator.php");
$browser->enable_images(false);
for ($x=1620; $x<1800; $x++)
{
$debug->optimize_memory();
$browser->navigate('http://vk.com/wall-37272264?offset=1420 ... 72264_'.$x);
sleep(2);
$html=$webpage->get_body();
if(preg_match("/\Этой записью пока никто не поделился\b/i",$html))

{
} else {
$ids=$webpage->get_body_inter_prefix_all('data-from-id="','">');
$ids=explode("<br>",$ids);
foreach ($ids as $id)
{
if(preg_match("/\-\b/i",$id))
{
}
else
{
file_put_contents('id.txt', $id." ", FILE_APPEND | LOCK_EX);
echo $id."<br>";
}



}

}


}
Но проблема в том, что прочекав, акков 150, вылетает ошибка связанная с памятью и предлогает использовать $debug->optimize_memory(); , я уже воткнул его во все возможные места, но программа так и выводит спустя несколько акков это сообщение. Как можно оптимизировать этот скрипт, да бы не пожирала память.

oleg88889
Сообщения: 128
Зарегистрирован: 19 мар 2013, 14:35

Re: Проблема с памятью

Сообщение oleg88889 » 07 май 2013, 23:03

Функцией "$debug->optimize_memory()" никак. Функцией "$app->restart" можно. Примерно так:
$app->minimize_to_tray();
//в счетчик.txt пишешь нужное значение
//в пути к файлу обязательно 2 слэша !!!
$x = $textfile->read_file("C:\\счетчик.txt",60);
if ($x<=1800) {
//твой скрипт
++$x;
$textfile->write_file("C:\\счетчик.txt",$x,60,false) ;
$app->restart("C:\\script.php");
}
Это все запустить в хумане RT, работать должно довольно бодро.

Gilman
Сообщения: 8
Зарегистрирован: 08 мар 2013, 00:49

Re: Проблема с памятью

Сообщение Gilman » 08 май 2013, 01:53

так медленее конечно, но вариант вполне устраивает, спасибо.

Ответить