Yes, that's what the documentation says. I had the wrong idea about the limit. I thought the limit would prevent total memory size exceeding the value.
This in fact can be done with a function, placed at critical points in the code. memlim=: 3 : '([ assert@(1e8&>)) 7!:0 $0' smoutput memlim'' 1103296 --- Roger Hui <[EMAIL PROTECTED]> wrote: > The 9!:20 memory limit contrains the size of any one memory allocation; > none of the expressions below exceed the limit. > > > > ----- Original Message ----- > From: "Oleg Kobchenko" <[EMAIL PROTECTED]> > To: "Beta forum" <[email protected]> > Sent: Thursday, May 11, 2006 4:37 PM > Subject: Re: [Jbeta] RE: Tardy graphics > > Memory limit is not working. > > The problem with breaking is typically related not to > length of operation or its complexity, but rather whether > it uses a lot of memory. > > This happens often even with such simple > operations as this (takes 1.3 Gb with 10000000#1000): > > 'c'8!:2 ] 9!:20'' > 268,435,456 > 'c'8!:2 ] 7!:2'([: $ #&1)&.> 4000000#1000' > 595,119,424 > (It should have given 'out of memory' -- > further, open Task Manager to observe that J > did not release the memory(*), before a call to 7!:0''). > > Now keep increasing the size (value before #) until > swapping starts (execution should take a minute or more). > Now try to use the yellow icon to break -- it won't work > right away, only after a while. > > Rationale: such situations occur when using > brute force and you want to push it, > so that the engine tells with memory limit > "that's too far" -- OK, let's try something > else. > > When the disk starts swapping, it takes J longer > to react to the yellow icon. For some reason, > the memory limit does not work. J is slowly > allocating a huge amount of memory exceeding > the limit, which causes the swap. > > As a result you have to wait for long minutes > before this process completes. Often it takes > too long and you just have to kill J process. > > ________ > (*) J does not relase the memory after execution > of the last statement so any call to GUI now > such as Close [X], may produce > > |out of memory: wdhandler_0_ > | wdq=: wd'q' > > > > --- Eric Iverson <[EMAIL PROTECTED]> wrote: > > > How is jbreak 601 not working? Have you studied the doc in the User Manual > > on 'Interrupt Execution'? Verify with some very simple tests that the basic > > mechanism works in simple cases. For example, create a script with a verb > > that does a while loop that will run for 10 seconds or so and then test > > whether clicking the yellow J icon interrupts execution or not. Most J > > programs can be interrupted fairly promptly. There are some long running > > executions that are very localized and don't check for break, but I would > > be > > surprised if that were the case for the general problem you report. > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
