Speicher leckt Symfony2 Doctrine2 / Speichergrenze überschreiten

eigentlich habe ich eine Menge ärger mit der Kombination von symfony2 und doctrine2. Ich habe zum Umgang mit großen Datenmengen (etwa 2-3 Millionen Lesen und schreiben) und zu tun haben, eine Menge von zusätzlichen Aufwand zu vermeiden, läuft out of memory.

Ich figgured aus 2 Haupt-Punkte, das "Leck"ing-Speicher (Sie sind eigentlich nicht wirklich undicht, aber die Zuteilung einer Menge)

  1. Den Entitymanager entity-Speicher (ich weiß nicht den richtigen Namen) scheint es, wie es hält alle verarbeiteten entites und Sie haben zu klären, dieser Speicher regelmäßig mit
    $entityManager->clear()
  2. Lehre QueryCache - es speichert alle verwendeten Abfragen und die einzige Konfiguration, die ich fand, war, dass Sie in der Lage sind, zu entscheiden, welche Art von Cache, die Sie verwenden möchten. Ich habe nicht gefunden, ein global deaktivieren Sie weder ein nützliches Merkmal für jede Abfrage zu deaktivieren.
    Also in der Regel deaktivieren Sie für jede query-Objekt mit der Funktion

    $qb = $repository->createQueryBuilder($a); 
    $Abfrage = $qb->getQuery(); 
    $query->useQueryCache(false); 
    $query->execute(); 
    

so.. das ist alles, was ich herausgefunden habe, jetzt..
meine Fragen sind:

Gibt es eine einfache Möglichkeit zu leugnen, einige Objekte aus dem Entitymanagerstorage?
Gibt es eine Möglichkeit zum festlegen der querycache Einsatz in der entitymanager?
Kann ich dies konfigurieren, caching-Verhalten somethere in der symonfony Lehre Konfiguration?

Wäre sehr cool, wenn jemand hat ein paar nette Tipps für mich.. ansonsten kann dies einigen geholfen rookie..

cya

Kommentar zu dem Problem
Die D2 ORM-layer ist nicht wirklich entwickelt, für massive batch-Verarbeitung. Sie könnten besser mit der DBAL layer und nur mit arrays zu arbeiten. Kommentarautor: Cerad
Läuft mit --no-debug hilft eine Menge (im debug-Modus die profiler behält Informationen über jede einzelne Abfrage im Speicher) Kommentarautor: arnaud576875

InformationsquelleAutor der Frage MonocroM | 2012-03-14

Schreibe einen Kommentar