On Sat, May 08, 2021 at 10:07:00AM +0000, Stefan Kohl wrote: > Dear Marc, > > there are at least two ways to achieve this. > -- One of them is to use the function `AttributeValueNotSet', > and another is to only pass the generators of the group to your testing > function, > and to create the group object locally inside that function.
I just wanted to mention Unbind(), a GAP function which allows one to remove components from records, etc. - check its docs. And (no longer documented?) GASMAN("collect") to explicitly trigger garbade collection, something that might help keeping memory consumption at bay. HTH Dima > > Does this help you? -- > Let me know if you have any further questions! > > Best regards, > > Stefan > > > ________________________________ > From: Marc Keilberg <keilb...@usc.edu> > Sent: Saturday, May 8, 2021 4:01 AM > To: GAP Forum <Forum@gap-system.org> > Subject: [GAP Forum] Stop GAP from storing group properties > > Dear GAP Forum, > > I've been looking to sift through a particular family of a few ten-thousand > groups, which are not in any of the current libraries, to see if they have > certain properties. While it's relatively easy to construct the entire > family of groups via the anupq package, and the test I run on them is > relatively quick (a second or two per group on my computer), I run into > serious memory consumption issues when I go to start testing them all (with > a function specifically written to perform the test in question). While > the list of groups I want only takes up a few gigabytes, and each iteration > of the testing function should be consuming a small fraction of that before > it completes, my total memory consumption constantly ticks up as I run > through the list, ultimately consuming well more memory than the list of > groups itself. > > The problem, best as I can tell, is that in my function I must compute > RationalClasses(Center(G)) for the given group G, and this information is > getting stored in the group, resulting in ever increasing amounts of memory > consumption as GAP iterates over my list of groups. But I don't want or > need it stored. I have tried using ShallowCopy, but that doesn't help, as > the group objects are all non-copyable apparently, so ShallowCopy, > Immutable, StructuralCopy etc. all just return the original object instead > of a wholly new one. So it's still storing the information on the original > group object, instead of a distinct copy that gets deleted upon the > function completing. > > So is there any way I can prevent a testing function from storing > properties of a group on that group after it completes, or otherwise delete > any newly stored information before the function exits, and thereby prevent > this excess memory consumption? > > Thanks, > Marc > _______________________________________________ > Forum mailing list > Forum@gap-system.org > https://mail.gap-system.org/mailman/listinfo/forum > _______________________________________________ > Forum mailing list > Forum@gap-system.org > https://mail.gap-system.org/mailman/listinfo/forum _______________________________________________ Forum mailing list Forum@gap-system.org https://mail.gap-system.org/mailman/listinfo/forum