How come I cannot even create a 2GB mapped file inside the 64 bit VAS?

Should this work even though it might not be clever to do it? What if
I want to work with 2GB of JCHAR?

size =. 2147483648
bigfn =. jpath '~temp\big.jmf'
createjmf_jmf_ bigfn;(size)
map_jmf_ 'bigvar';bigfn


On Sun, Nov 16, 2008 at 6:00 PM, Raul Miller <[EMAIL PROTECTED]> wrote:
> 2008/11/16 Matthew Brand <[EMAIL PROTECTED]>:
>> I don't think I understand all this 64-bit stuff at all now.
>>
>> I am using J64 for Linux on 64 bit Ubuntu on VMWare fusion
>> on Leopard on a 2GB Mac Book Pro. I thought that by using
>> J64 I would be able to work with arrays of much larger size
>> because the Virtual Address Space would be larger.
>>
>> But I get this:
>>   #i.2^24
>> 16777216
>>   #i.2^30
>> |out of memory
>> |   #    i.2^30
>
> In J64, each integer occupies 64 bits or 64%8 bytes
>   (2^30)*64%8
> 8.58993e9
>
> To hold that array, you will need enough virtual memory to
> hold it, to hold the J interpreter, and to hold the operating
> system.  If you want to manipulate that array, I would
> recommend having 5 times as much space as you would
> need to hold it.
>
> Note, also, that using virtual memory is much slower than
> using real memory.  (10000 times slower?  I am not sure
> of the exact numbers.)  Essentially, the operating system
> winds up having to write all large results to your swap file
> when you create them and then read all large results from
> that file when you read them.
>
> --
> Raul
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to