Re: [dzug-zope] Effizient ueber große Mengen von Ob jekten iterieren

Pavel Bogdanovic <[email protected]>
Newsgroups gmane.comp.web.zope.german
Message-ID <[email protected]>
Hallo Michael,
kannst Du die Metadaten nicht derart erweitern, dass Du nicht alle Objekte
aufwecken musst?


Gruß
Pavel

Am 20. November 2009 10:22 schrieb Michael Hierweck <
[email protected]>:

> Hallo allerseits,
>
> kann man in Plone 3.3.x effizienter über viele Objekte iterieren, als so:
>
>
> brains = catalog.searchResults([...])
> for brain in brains:
>        object = brain.getObject()
>        [...]
>
>
> Bei mir führt das zu einer Zunahme des RAM-Bedarfs von 20-25 MB je 1000
> Objekten und nach ca. 90.000 Objekten und dem Erreichen von rund 2 GB
> treten Fehler (syshook, leider wird kein Stacktrace ausgegeben) auf.
>
> Zumindest mein Code führt keine Operationen aus, bei denen Daten in
> jedem Iterationsschritt erfasst und in globalen Variablen abgelegt
> würde. Leider muss ich jedoch die Objekt mit "getObject()" aufwecken, da
> nicht alle benötigten Daten in den Brains stehen.
>
> Was ich schon mal probiert habe:
>
> a) Alle 1000 Objekte gc.collect() aufgerufen => kein spürbarer Effekt
> b) Alle 1000 Objekte transaction.abort() aufgerufen => reduziert den
> RAM-Bedarf anscheinend (wächst aber immer noch).
>
> Zumindest den Effekt von b) verstehe ich nicht, weil hier definitiv (von
> mir) keine Daten geschrieben werden. (Es handelt es um ein rein lesendes
> Datenexport-Skript.) Es sei denn Archetypes würde bei get"Field"() oder
> dem Verfolgen von Referenzen (relatedItems) Schreiboperationen ausführen...
>
>
> Danke für Tipps und auch Information zum besseren Verständnis.
>
> Ein schönes Wochenende wünscht
>
> Michael
>
>
>
> _______________________________________________
> zope mailing list
> [email protected]
> https://mail.dzug.org/mailman/listinfo/zope
>
>


-- 
_________________________________________
Dipl.-Ing. Pavel Bogdanovic
Prontonet
Stresemannstraße 161
D-22769 Hamburg

Tel: +49 (0)40 76 99 0800
Fax: +49 (0)40 76 99 0801
mobil: +49 (0)177 246 13 15

[email protected]
visit us www.prontonet.eu



_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.