Just to skip the newbie replies :) I attempted to go over the "rects"
collection and expunge all the items.
This direct approach didn't work.

Mati

On Jan 31, 11:01 am, matiskiva <mati.sk...@mobileye.com> wrote:
> Hello all,
> I have an application that loads many "Detection" objects, each of
> them having thousands of "Rect" objects, loaded with eager loading.
> I am performing some calculation on the rects and saves the result,
> along with the Detection objects.
> But than I am stuck with all the Rect objects, taking up lots of
> memory and I can't find a way to release them.
>
> And for the code:
>
> # there is some kind of RectDB mapping and definition...
> mapper(RectDB....
>
> # there is some kind of DetectionDB mapping and definition
> mapper(DetectionDB,_detection_table,properties={
> "rects":relation(RectDB),
> ....
>
> # query the detections
> detections = session.query(DetectionDB).filter(....).eagerload
> ("rects").all()
>
> for d in detections:
>    # make calculation
>    rectsScore = calculateScore(d)
>    # save score
>    d.score = rectsScore
>    # release rects, they take up lots of space
>    releaseEagerLoading(d.rects)
>
> # update the detections
> ...
>
> Currently I have no idea how to implement releaseEagerLoading. The
> result is very large (over 1GB) memory footprint. I tried the same
> without using the rects (empty score calculation) and without the
> eager loading and it was below 100MB.
> I think I can guess why it happens, but the question is - how can I
> release the eager loading?
>
> Thank you in advance,
> Mati

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to