Почему я получаю утечки памяти в SimplePie при использовании $ item-> get_permalink ()?
м используюSimplePie с PHP 5.3 (с включенным gc) для разбора моих RSS-каналов. Это работает хорошо и без проблем, когда вы делаете что-то вроде следующего:
$simplePie = new SimplePie();
$simplePie->set_feed_url($rssURL);
$simplePie->enable_cache(false);
$simplePie->set_max_checked_feeds(10);
$simplePie->set_item_limit(0);
$simplePie->init();
$simplePie->handle_content_type();
foreach ($simplePie->get_items() as $key => $item) {
$item->get_date("Y-m-d H:i:s");
$item->get_id();
$item->get_title();
$item->get_content();
$item->get_description();
$item->get_category();
}
Отладка памяти более 100 итераций (сразные RSS-каналы):
Но при использовании$item->get_permalink()
моя отладка памяти выглядит так за 100 итераций (сразные RSS-каналы).
Код для создания проблемы:
foreach ($simplePie->get_items() as $key => $item) {
$item->get_date("Y-m-d H:i:s");
$item->get_id();
$item->get_title();
$item->get_permalink(); //This creates a memory leak
$item->get_content();
$item->get_description();
$item->get_category();
}
Вещи, которые ямы пробовали:
С помощьюget_link
вместоget_permalink
С помощью__destroy
как уже упоминалосьВот (хотя это должно быть исправлено для 5.3)Текущий процесс отладки:
Я, кажется, проследил проблему до ->SimplePie_Item::get_permalink
->SimplePie_Item::get_link
->SimplePie_Item::get_links
->SimplePie_Item::sanitize
->SimplePie::sanitize
->SimplePie_Sanitize::sanitize
->SimplePie_Registry::call
SimplePie_IRI::absolutize
по состоянию на сейчас.
Что я могу сделать, чтобы это исправить?