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

Reply via email to