Thank you  Henry.  I appreciate it.

On Mon, Aug 8, 2016 at 3:47 PM, Henry Rich <[email protected]> wrote:

> I don't think I changed anything in @: or [: .  But I did make lots of
> changes in memory management, and especially in counting the allocated
> space.  I'll look into it.
>
> Henry Rich
>
>
> On 8/8/2016 2:32 PM, Jose Mario Quintana wrote:
>
>> Apparently, the performance of @: vs [: has taken a turn for
>> the worse under the beta-10 engine.
>>
>> One the one hand, this discussion should have been in the Beta forum.  On
>> the other hand, general performance of programs is entertained; so, it
>> might belong here as well (alright, alright, I am having difficulty
>> logging
>> in to my mail associated to the beta forum, my apologies).
>>
>> I was surprised when I was checking out some performance comparison in the
>> JWithATwist thread in the Chat forum. First, I noticed that there were a
>> straw-man verb comparisons of between [: and @ (as opposed to @:). I guess
>> that is unfortunately unavoidable because, apparently, most
>> J programmers use @ by default.  In addition, it was not taken
>> into consideration that forks naturally associate to the right whereas
>> conjunctions naturally associate to the left.
>>
>> However, the under performance of @: vs [: persisted after addressing
>> these
>> omissions and an alarm went off in my head!
>>
>> First a comparison running J4:
>>
>>     JVERSION
>> Engine: j804/j64/windows
>> Release: commercial/2015-12-21 16:18:48
>> Library: 8.04.15
>> Qt IDE: 1.4.10/5.4.2
>> Platform: Win 64
>> Installer: J804 install
>> InstallPath: j:/program files/j
>> Contact: www.jsoftware.com
>>
>>     stp=. ([ ((<;._1 '|Sentence|Space|Time|Space * Time') , (, */&.:>@:(1
>> 2&{))@:(] ; 7!:2@:] ; 6!:2)&>) (10{a.) -.&a:@:(<;._2@,~) ]) ".@:('0 :
>> 0'"_)
>>
>>
>>     stp 1
>> ([: - [: - [: - [: - ])      i. 10000000
>> (- @: (- @: (- @: (- @: ]))))i. 10000000
>> ([: ([: ([: ([: - -) -) -) ])i. 10000000
>> (- @: - @: - @: - @: ])      i. 10000000
>> (- @  - @  - @  - @  ])      i. 10000000
>> )
>> ┌────────────────────────────────────────┬─────────┬────────
>> ┬────────────┐
>> │Sentence                                │Space    │Time    │Space * Time│
>> ├────────────────────────────────────────┼─────────┼────────
>> ┼────────────┤
>> │([: - [: - [: - [: - ])      i. 10000000│402656512│0.178322│7.18024e7
>>  │
>> ├────────────────────────────────────────┼─────────┼────────
>> ┼────────────┤
>> │(- @: (- @: (- @: (- @: ]))))i. 10000000│402657024│0.178733│7.1968e7
>> │
>> ├────────────────────────────────────────┼─────────┼────────
>> ┼────────────┤
>> │([: ([: ([: ([: - -) -) -) ])i. 10000000│671092864│0.185165│1.24263e8
>>  │
>> ├────────────────────────────────────────┼─────────┼────────
>> ┼────────────┤
>> │(- @: - @: - @: - @: ])      i. 10000000│671092352│0.176141│1.18207e8
>>  │
>> ├────────────────────────────────────────┼─────────┼────────
>> ┼────────────┤
>> │(- @  - @  - @  - @  ])      i. 10000000│268439936│5.73629 │1.53985e9   │
>> └────────────────────────────────────────┴─────────┴────────
>> ┴────────────┘
>>
>> The sentences are performing as I expected in both terms, space and time.
>> The corresponding versions of [: and @: have the same performance whereas
>> @
>> uses less than half of the space but has a (relative) pretty bad time
>> performance.
>> Now the same comparison running J5 (the one I was originally using):
>>
>>     JVERSION
>> Engine: j805/j64/windows
>> Beta-10: commercial/2016-08-01T13:13:21
>> Library: 8.04.15
>> Qt IDE: 1.4.10/5.4.2
>> Platform: Win 64
>> Installer: J804 install
>> InstallPath: j:/program files/j
>> Contact: www.jsoftware.com
>>
>>     stp=. ([ ((<;._1 '|Sentence|Space|Time|Space * Time') , (, */&.:>@:(1
>> 2&{))@:(] ; 7!:2@:] ; 6!:2)&>) (10{a.) -.&a:@:(<;._2@,~) ]) ".@:('0 :
>> 0'"_)
>>
>>
>>     stp 1
>> ([: - [: - [: - [: - ])      i. 10000000
>> (- @: (- @: (- @: (- @: ]))))i. 10000000
>> ([: ([: ([: ([: - -) -) -) ])i. 10000000
>> (- @: - @: - @: - @: ])      i. 10000000
>> (- @  - @  - @  - @  ])      i. 10000000
>> )
>> ┌────────────────────────────────────────┬─────────┬────────
>> ┬────────────┐
>> │Sentence                                │Space    │Time    │Space * Time│
>> ├────────────────────────────────────────┼─────────┼────────
>> ┼────────────┤
>> │([: - [: - [: - [: - ])      i. 10000000│402656000│0.22633 │9.1133e7    │
>> ├────────────────────────────────────────┼─────────┼────────
>> ┼────────────┤
>> │(- @: (- @: (- @: (- @: ]))))i. 10000000│671091840│0.168359│1.12985e8
>>  │
>> ├────────────────────────────────────────┼─────────┼────────
>> ┼────────────┤
>> │([: ([: ([: ([: - -) -) -) ])i. 10000000│671091840│0.177579│1.19172e8
>>  │
>> ├────────────────────────────────────────┼─────────┼────────
>> ┼────────────┤
>> │(- @: - @: - @: - @: ])      i. 10000000│671091840│0.191088│1.28238e8
>>  │
>> ├────────────────────────────────────────┼─────────┼────────
>> ┼────────────┤
>> │(- @  - @  - @  - @  ])      i. 10000000│268439296│1.34543 │3.61167e8   │
>> └────────────────────────────────────────┴─────────┴────────
>> ┴────────────┘
>>
>> One difference is the much improved time performance of @; that is the
>> good
>> news.  The other difference is the one related to the second sentence; the
>> space use cannot longer match the one of the first sentence.
>>
>> Needless to say that if this latter issue implies under performance under
>> certain broad conditions and it persists in J5 after the beta then it will
>> be a huge disappointment for programmers (such as yours truly) who avoid
>> [:
>> like the plague.
>> ----------------------------------------------------------------------
>> 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