The only memory settings that I am aware of are the 9!:20 and 9!:21 foreigns 
https://www.jsoftware.com/help/dictionary/dx009.htm

Cheers, bob

> On Feb 3, 2023, at 23:47, Ak O <akin...@gmail.com> wrote:
> 
> On Fri., Feb. 3, 2023, 05:17 Jan-Pieter Jacobs, <janpieter.jac...@gmail.com>
> wrote:
> 
>> 3!:2 just gives a representation of the noun. JMF memory-maps a file via
>> the OS, so you can access the file's content as if it were just normal
>> memory. It will stay only on disk as long as only in-place methods are used
>> to change it (doing something like othervar=: +: mapped var will copy it
>> entirely to memory anyhow). This page
>> https://code.jsoftware.com/wiki/Mapped_Files and this page (basically the
>> same as the jmf Lab): https://code.jsoftware.com/wiki/Studio/Mapped_Files
>> explain how to use JMF, and how it works.
>> 
>> I think the two mechanisms are entirely different, and both have their
>> pro's and con's:
>> 
>> reading data from file and applying 3!:2  is far simpler than JMF, and
>> allows working with the data faster once read, as the data is copied to
>> memory. JMF mapped nouns remain on disk, and incur the corresponding
>> transfer speed penalty.
> 
> Oh right, size is one factor.
> How do I determine  where the memory limit is (is this part of the 4gb
> allocated to the j instance by the operating system)?
> Can it be increased (or is this only for the jmf domain)?
> 
> 
>> 
>> On the other hand JMF allows using data that doesn't fit in memory, but
>> requires care to only apply in-place modification and care not to read more
>> than fits your memory.
>> 
> 
> Thx
> 
> Ak.
> 
> 
>> On Fri, 3 Feb 2023, 11:04 Ak O, <akin...@gmail.com> wrote:
>> 
>>> I guess one of my questions directed at how the function works under the
>>> hood.
>>> 
>>> Is it that 3!:2 is the mechanism jmf uses to treat the map?
>>> How do these forms differ?
>>> 
>>> Ak
>>> 
>>> On Thu., Feb. 2, 2023, 22:31 Raul Miller, <rauldmil...@gmail.com> wrote:
>>> 
>>>> You can measure overhead with timespacex
>>>> 
>>>> Maybe you had already been doing that?
>>>> 
>>>> --
>>>> Raul
>>>> 
>>>> On Thu, Feb 2, 2023 at 11:29 PM Ak O <akin...@gmail.com> wrote:
>>>>> 
>>>>> Is this less overhead than the jmf form?
>>>>> 
>>>>> In your example, every case where I want to operate on a file or an
>>>> object
>>>>> within the file requires translation through the 3!:2 operator.
>>>>> 
>>>>> Maybe it is functionally the same as the map_jmf_ function, or am I
>>>>> thinking about this incorrectly?
>>>>> Or can you please explain the difference.
>>>>> 
>>>>> Thx
>>>>> 
>>>>> 
>>>>> Ak
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> On Thu., Feb. 2, 2023, 15:43 Don Guinn, <dongu...@gmail.com> wrote:
>>>>> 
>>>>>> 'testfile.txt' fwrite~3!:1 'Hello World!';(i.3 4);<2 1$'Text
>> Here';1
>>> 2
>>>> 3 4
>>>>>> 456
>>>>>> 
>>>>>> 3!:2 fread 'testfile.txt'
>>>>>> 
>>>>>> ┌────────────┬─────────┬───────────┐
>>>>>> 
>>>>>> │Hello World!│0 1 2 3│┌─────────┐│
>>>>>> 
>>>>>> │ │4 5 6 7││Text Here││
>>>>>> 
>>>>>> │ │8 9 10 11│├─────────┤│
>>>>>> 
>>>>>> │ │ ││1 2 3 4 ││
>>>>>> 
>>>>>> │ │ │└─────────┘│
>>>>>> 
>>>>>> └────────────┴─────────┴───────────┘
>>>>>> 
>>>>>> On Thu, Feb 2, 2023 at 2:19 PM Ak O <akin...@gmail.com> wrote:
>>>>>> 
>>>>>>> In this case the data is an array of boxes.
>>>>>>> The datatype is 'boxe'd.
>>>>>>> The data is of some shape.
>>>>>>> 
>>>>>>> These things have to be preserved in order to correctly restore
>>> them
>>>>>>> later. (at some cost,  up-front to specify them,  afterwards to
>>>> recall
>>>>>> the
>>>>>>> specifics, or something else) It might be easy to write as
>> literal,
>>>> but
>>>>>>> reverting  back can present some challenges.
>>>>>>> 
>>>>>>> For example:
>>>>>>> ary=: 'abcd';4 5 6 7; 2 2 $ 8.9 7.6 .6.5 5.4
>>>>>>> 
>>>>>>>     datatype ary
>>>>>>> boxed
>>>>>>> 
>>>>>>>     datatype ":ary
>>>>>>> literal
>>>>>>> ***Danger***
>>>>>>>     $ary     NB. An array of structures that preserves
>> operational
>>>>>>> intention.
>>>>>>> 3
>>>>>>>     $":ary   NB. An array whose structure is different than its
>>>>>>> operational intention.
>>>>>>> 4 22
>>>>>>> 
>>>>>>> These are different and need to be accounted for.
>>>>>>> 
>>>>>>>     datatype (>0{ary)
>>>>>>> literal
>>>>>>> 
>>>>>>>     datatype (>1{ary)
>>>>>>> Integer
>>>>>>> 
>>>>>>>     datatype (>2{ary)
>>>>>>> floating
>>>>>>> 
>>>>>>> 
>>>>>>> Each unit has a shape and a type to preserve.
>>>>>>> 
>>>>>>> If I want to operate on this object with the meaning intended for
>>> it
>>>> when
>>>>>>> it was created, many errors can be avoided when unnecessary
>>>> intermediate
>>>>>>> conversions are avoided.
>>>>>>> 
>>>>>>> Jmf allows you to operate directly without having the need to
>>>>>>> revert from literal to your operation/operand, datatype (with the
>>>>>>> associated overhead and tracking).I am not saying that there is
>> no
>>>>>> overhead
>>>>>>> with jmf, just that the cognitive load is offset or preset
>> because
>>>> jmf
>>>>>>> treats it for the user.
>>>>>>> 
>>>>>>> 
>>>>>>> (1!2 & 1!:/, fwrite , fread) forms.
>>>>>>> 1. Convert to literal.
>>>>>>> 2. Write literal to file.
>>>>>>> 3. Read literal from file.
>>>>>>> 4. Convert literal type to operation type
>>>>>>> 5. Operate with type.
>>>>>>> End
>>>>>>> ___
>>>>>>> 
>>>>>>> jmf form.
>>>>>>> 1. Create jmf file.
>>>>>>> 2. Map jmf file.
>>>>>>> 3. Operate with file.
>>>>>>> End
>>>>>>> 
>>>>>>> 
>>>>>>> I am interested in understanding better how the best performance
>> is
>>>>>>> achieved comparing these forms.
>>>>>>> 
>>>>>>> Thoughts.
>>>>>>> 
>>>>>>> 
>>>>>>> Ak
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On Thu., Feb. 2, 2023, 07:51 bill lam, <bbill....@gmail.com>
>>> wrote:
>>>>>>> 
>>>>>>>> Using Jmf is overkill. Also what are the advantages of jmf over
>>>>>> 3!:1/3!:2
>>>>>>>> in this case?
>>>>>>>> 
>>>>>>>> On Thu, 2 Feb 2023 at 7:17 PM Ak O <akin...@gmail.com> wrote:
>>>>>>>> 
>>>>>>>>>     load 'jmf'
>>>>>>>>> NB. Loads jmf facilities.
>>>>>>>>> 
>>>>>>>>>     testfile =: {2,\?50#75
>>>>>>>>> 
>>>>>>>>>     fn =: jpath
>>>> 'C:\Users\skip\J904-user\temp\foo\testfile_name.jmf'
>>>>>>>>> NB. Links a covername to the file path.
>>>>>>>>>     createjmf_jmf_ fn;(([:(*&8)#);testfile)
>>>>>>>>> NB. Create the container for your file.
>>>>>>>>> NB. -fn is your reference name
>>>>>>>>> NB. -(([:(*&8)#);testfile) allocates the size of yor fike in
>>>> bytes
>>>>>>>>> 
>>>>>>>>>     map_jmf_ 'testfile_disk';fn
>>>>>>>>> NB. Maps the file to a noun 'testfile_disk'
>>>>>>>>>     ] testfile_disk_jmf_ =: testfile
>>>>>>>>> 
>>>>>>>>>     unmap_jmf 'testfile_disk_jmf_'
>>>>>>>>> NB. Release mappings
>>>>>>>>> Or
>>>>>>>>> Exit 0
>>>>>>>>> Close session.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> New session.
>>>>>>>>> 
>>>>>>>>>     load 'jmf'
>>>>>>>>>     fn =:  jpath
>>>>>> 'C:\Users\skip\J904-user\temp\foo\testfile_name.jmf'
>>>>>>>>>     map_jmf_ 'testfile1';fn
>>>>>>>>> NB. Map file
>>>>>>>>>     ] testfile1_jmf_
>>>>>>>>> NB. File loaded as noun 'testfile1_jmf_'
>>>>>>>>> 
>>>>>>>>> Some potential benefits of the .jmf datatype:
>>>>>>>>> -Preserves header and shape information.
>>>>>>>>> -If you want to map you file as read only, use the following
>>>> syntax
>>>>>>>>> map_jmf_ 'testfile1';fn;'';1
>>>>>>>>> -If you would like it to be copy-on-write use the following
>>>> syntax
>>>>>>>>> map_jmf_ 'testfile1';fn;'';2
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Ak
>>>>>>>>> 
>>>>>>>>> On Wed., Feb. 1, 2023, 21:48 'Skip Cave' via Programming, <
>>>>>>>>> programm...@jsoftware.com> wrote:
>>>>>>>>> 
>>>>>>>>>> I have a boxed noun:
>>>>>>>>>> 
>>>>>>>>>> ] testfile =: {2,\?15#50
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>> 
>>> 
>> ┌────┬─────┬─────┬─────┬─────┬─────┬────┬────┬────┬────┬─────┬────┬───┬────┐
>>>>>>>>>> 
>>>>>>>>>> │9 21│21 47│47 37│37 13│13 33│33 20│20 4│4 49│49 6│6 25│25
>>>> 33│33
>>>>>> 9│9
>>>>>>>> 6│6
>>>>>>>>>> 43│
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>> 
>>> 
>> └────┴─────┴─────┴─────┴─────┴─────┴────┴────┴────┴────┴─────┴────┴───┴────┘
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> I want to store it in the following location on my machine:
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> ]fn =. < 'C:\Users\skip\J904-user\temp'
>>>>>>>>>> 
>>>>>>>>>> ┌────────────────────────────┐
>>>>>>>>>> 
>>>>>>>>>> │C:\Users\skip\J904-user\temp│
>>>>>>>>>> 
>>>>>>>>>> └────────────────────────────┘
>>>>>>>>>> 
>>>>>>>>>> Then I will close that J session.
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Later, I will start a new J session, and I want to read
>> that
>>>> saved
>>>>>>> file
>>>>>>>>>> into a noun called 'test1'
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> What is the J code for writing the noun into a file in the
>>>> first
>>>>>>>> session?
>>>>>>>>>> 
>>>>>>>>>> What is the J code to read the file into a noun in the
>> second
>>>>>>> session?
>>>>>>>>>> 
>>>>>>>>>> Should I use 1!2 & 1!:1, or fwrite & fread, or something
>>> else?
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Where in the J doc are these file operations and their
>>>> tradeoffs
>>>>>>>>> described?
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Skip
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Skip Cave
>>>>>>>>>> Cave Consulting LLC
>>>>>>>>>> 
>>>>>>> 
>>>> ----------------------------------------------------------------------
>>>>>>>>>> For information about J forums see
>>>>>>> http://www.jsoftware.com/forums.htm
>>>>>>>>>> 
>>>>>>>>> 
>>>>>> 
>>> ----------------------------------------------------------------------
>>>>>>>>> For information about J forums see
>>>>>> http://www.jsoftware.com/forums.htm
>>>>>>>>> 
>>>>>>>> 
>>>> ----------------------------------------------------------------------
>>>>>>>> For information about J forums see
>>>> http://www.jsoftware.com/forums.htm
>>>>>>>> 
>>>>>>> 
>>>> ----------------------------------------------------------------------
>>>>>>> For information about J forums see
>>>> http://www.jsoftware.com/forums.htm
>>>>>>> 
>>>>>> 
>>> ----------------------------------------------------------------------
>>>>>> For information about J forums see
>>> http://www.jsoftware.com/forums.htm
>>>>>> 
>>>>> 
>> ----------------------------------------------------------------------
>>>>> For information about J forums see
>> http://www.jsoftware.com/forums.htm
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>> 
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>> 
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>> 
> ----------------------------------------------------------------------
> 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