You may want to look at the labs about mapped files and it will probably
give you an idea of how things are done in J.

2012/1/6 Blake McBride <bl...@mcbride.name>

> This is a very important point.  I'd like to get an official response to
> this.
>
> Modifying an existing array could easily be 1,000 times faster than
> creating a new, modified array.  Naturally, this would depend on the
> size and type of the array.  Seeing how 'fast' it is in human or even
> computer time means nothing!  What is important is the relative time
> between performing a real indexed update to a copy operation.  Even a
> small difference multiplied over a lot of operations can become
> unbelievable significant.  And, we are not talking about a small
> difference!
>
> Imagine an application specific need to maintain a very large array
> and make a lot of changes to individual elements.  A program that does
> only this on a large dataset could easily by 1,000 times more time
> consuming.  Imagine a situation where one program takes an hour to
> complete a calculation and another takes 1,000 hours for the same
> calculation.  This is a significant issue.
>
> Blake McBride
>
>
> On Fri, Jan 6, 2012 at 9:11 AM, David Mitchell <davidmitch...@att.net>
> wrote:
> > I believe that optimization is happening behind the scenes.  See the
> following
> > tests actually timing indexed assignment, first without replacing the
> original
> > array and then replacing the original array:
> >
> >    ts=: 6!:2 , 7!:2@]
> >    a=:i.1e6
> >    ts'_777 (2 9 43556)}a'
> > 0.0238083 8.39078e6
> >    ts'a=:_777 (2 9 43556)}a'
> > 1.00571e_5 2432
> >
> > On 1/6/2012 9:54, Blake McBride wrote:
> >> Greetings,
> >>
> >> Going through J I found that:
> >>
> >>     x=:1+i.5
> >>     x
> >> 1 2 3 4 5
> >>     44 (2}) x
> >> 1 2 44 4 5
> >>     x
> >> 1 2 3 4 5
> >>
> >> It seems that J doesn't actually make an indexed assignment.  It seems
> >> more like it creates a copy of the array with the specified
> >> modifications.  This is actually quite shocking.  Index assignment to
> >> a very large array in most languages is a very fast and simple
> >> operation.  It is also very memory efficient.  Creating a modified
> >> copy of a very large array has a much, much greater time and space
> >> cost.  Further, multiplying this (unnecessary) cost over a great
> >> number of operations can drastically (and unnecessarily) affect
> >> performance negatively.
> >>
> >> Am I missing something here?
> >>
> >> Thanks.
> >>
> >> Blake McBride
> >> ----------------------------------------------------------------------
> >> 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
>



-- 
Björn Helgason, Verkfræðingur
Fornustekkum II
781 Hornafirði,
t-póst: gos...@gmail.com
gsm: +3546985532
twitter: @flugfiskur
http://groups.google.com/group/J-Programming


Tæknikunnátta höndlar hið flókna, sköpunargáfa er meistari einfaldleikans

góður kennari getur stigið á tær án þess að glansinn fari af skónum
          /|_      .-----------------------------------.
         ,'  .\  /  | Með léttri lund verður        |
     ,--'    _,'   | Dagurinn í dag                     |
    /       /       | Enn betri en gærdagurinn  |
   (   -.  |        `-----------------------------------'
   |     ) |         (\_ _/)
  (`-.  '--.)       (='.'=)   ♖♘♗♕♔♙
   `. )----'        (")_(") ☃☠
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to