perform gc per .z.pg

https://learninghub.kx.com/forums/topic/perform-gc-per-z-pg

Given that we cant use -g 1 and no change on caller side,
is there any way to perform gc upon each .z.pg?
I initially have

.z.pg:{ bigresult: value x; .Q.gc; bigresult };

but the memory is not going down until next smaller query.

Is there a reason you cannot use -g 1 ?

Running .Q.gc so often is not the best approach but if you needed to a timer could check and run if after .z.pg for you:

runGC:0b 
.z.pg:{ bigresult: value x;runGC::1b; bigresult };
.z.ts:{if[runGC;.Q.gc[];runGC::0b]} t 1

https://code.kx.com/q/ref/dotz/#zts-timer

To run it less often you could set a threshold and in the if statement check memory usage

https://code.kx.com/q/ref/dotq/#qw-memory-stats