What follows is the entire contents of a J session which ran out of memory.
This is on a 1G machine on Windows XP Pro.

I was playing with one of the Project Euler problems and wanted to verify
the answer using rationals instead of floats. The solution using floats ran
in about a second. When I converted it to use rationals it went to paging
and eventually ran out of memory. Fair enough. This is a pretty memory
intensive approach.

The problem is that once it ran out of memory nothing of any consequence
worked. Even clicking File/Exit got out of memory. Fortunately 7!:3''
worked, but it took a long time to run as it had to go through a lot of
memory that was paged.

The thing is that there should be plenty of memory available as nothing
beyond the standard libraries were loaded. Is there a memory leak somewhere?
Is it possible that when an out of memory occurs that J forgets to free up
memory? This is on j601/2006-11-17/17:05

  x:(x:^:_1]3r7)(_2:{[:(/:~)[:~.]%~[:<.*)>:i.100000
42857r100000
  x:(x:^:_1]3r7)(_2:{[:(/:~)[:~.]%~[:<.*)>:i.1000000
428570r999997
  x:(x:^:_1]3r7)(_2:{[:(/:~)[:~.]%~[:<.*)>: i.1000000
428570r999997
  3r7(_2:{[:(/:~)[:~.]%~[:<.*)>:i.1000000
|out of memory
|       (_2:{[:(/:~)[:~.]%~[:<.*)>:i.1000000
  x:(x:^:_1]3r7)(_2:{[:(/:~)[:~.]%~[:<.*)>:i.1000000
|out of memory
|   x:(x:^:_1]3r7)    (_2:{[:(/:~)[:~.]%~[:<.*)>:i.1000000

|out of memory: wdhandler_0_
|   wdq=:    wd'q'

|out of memory: wdhandler_0_
|   wdq=:    wd'q'

|out of memory: wdhandler_0_
|   wdq=:    wd'q'

|out of memory: wdhandler_0_
|   wdq=:    wd'q'

|out of memory: wdhandler_0_
|   wdq=:    wd'q'
  7!:3''
 64 29644938
128     1293
256      342
512      270
1024       84

|out of memory: wdhandler_0_
|   wdq=:    wd'q'

-------At this point after I copied the session to the clipboard for pasting
into this message I entered 2!:55'' and ended the session.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to