¿Por qué obtengo pérdidas de memoria en SimplePie al usar $ item-> get_permalink ()?
Estoy usandoSimplePie con PHP 5.3 (con gc habilitado) para analizar mis fuentes RSS. Esto funciona bien y sin problemas al hacer algo como lo siguiente:
$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();
}
Depuración de memoria en más de 100 iteraciones (condiferente RSS Feeds):
Pero cuando se usa$item->get_permalink()
, mi depuración de memoria se ve así en más de 100 iteraciones (condiferente RSS Feeds).
Código para producir problema:
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();
}
Cosas que he probado:
Utilizandoget_link
en lugar deget_permalink
Utilizando__destroy
como se mencionóaquí (aunque debería estar arreglado para 5.3)Proceso de depuración actual:
Parece que he rastreado el problema hastaSimplePie_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
a partir de ahora.
¿Qué puedo hacer para arreglar esto?