Thanks for the explanation!

might it work to replace the call to `tuple` with a call to `lazy_list`?

Martin

Am Donnerstag, 14. Februar 2019 17:54:49 UTC+1 schrieb Travis Scrimshaw:
>
> Maybe...Because the façade parent framework needs the tuple to say it is a 
> façade for that set of parents. Currently Family is a parent, so there 
> would be no way to distinguish between the family should represent the set 
> of parents or a parent to be the façade for.
>
> Most of what that test is for is to show that we are not actually creating 
> all of those elements and enumerating them (i.e., it is using the 
> hook-length formula). So we could maybe make it StandardTableaux(40) 
> instead of 50, but it will still likely use a large chunk of memory.
>
> Best,
> Travis
>
> On Thursday, February 14, 2019 at 9:49:06 PM UTC+10, Martin R wrote:
>>
>> Further digging reveals that the problem is in 
>> `DisjointUnionEnumeratedSets.__init__, which expands the lazy 
>> `Family(Partitions_n(n), StandardTableaux_shape)` into a tuple.  I have 
>> (currently) no idea whether this is necessary.
>>
>> Martin
>>
>> Am Donnerstag, 14. Februar 2019 12:38:20 UTC+1 schrieb Martin R:
>>>
>>> Can we exclude the possibility that this is a regression?
>>>
>>> As far as I can see, the expensive part is in creating the parent 
>>> 'StandardTableaux(50)', which is a bit strange, isn't it?
>>>
>>> Martin
>>>
>>> Am Mittwoch, 13. Februar 2019 22:02:37 UTC+1 schrieb Volker Braun:
>>>>
>>>> On Wednesday, February 13, 2019 at 5:33:38 PM UTC+1, Travis Scrimshaw 
>>>> wrote:
>>>>>
>>>>> My (complete) guess is that there are so many partitions of 50 (204226 
>>>>> to be precise) and in such a tight for loop that the garbage collector 
>>>>> does 
>>>>> not have enough time to actually collect the parents being created and 
>>>>> discarded. 
>>>>>
>>>>
>>>> The Python GC also starts collection if there are many new objects, so 
>>>> I don't think this is it.
>>>>
>>>>  Running the example takes > 1 gb of ram; Surely a smaller example 
>>>> could be used with the same code coverage.  
>>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to