mklee
1
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