[Jprogramming] An essay on boxed vs unboxed table performance

Peter B. Kessler Peter.B.Kessler at Oracle.COM
Thu Sep 12 22:22:57 UTC 2013


I don't like losing data to averages, so I have

     TimeToExecute=: verb define
       NB. The number of seconds to compute  x  executions of  y  (which must be quoted to delay execution).
       1 TimeToExecute y
       :
       (x $ 1) (6!:2) y
     )

and then I can run, for example

         10 TimeToExecute '0 1{"1 ] 100000 10 $ a'
     0.015575 0.015081 0.009818 0.01392 0.010023 0.009124 0.009203 0.008767 0.008633 0.00938

and do various things with the results, including averaging them if that's what I need.

			... peter

On 09/12/13 14:28, Devon McCormick wrote:
> This is one reason I like to look at time separately from space as 6!:2
> takes an optional left argument to average the timing over multiple
> repetitions, e.g.
>
>
>     6!:2 '0 1{"1 ] 100000 10 $  a'
> 0.00741604
>     6!:2 '0 1{"1 ] 100000 10 $  a'
> 0.00668613
>     6!:2 '0 1{"1 ] 100000 10 $  a'
> 0.00724116
>     6!:2 '0 1{"1 ] 100000 10 $  a'
> 0.00575015
>     6!:2 '0 1{"1 ] 100000 10 $  a'
> 0.00510153
>
> NB. Fairly high variance above vs. below:
>
>     (10) 6!:2 '0 1{"1 ] 100000 10 $  a'
> 0.00504947
>     (10) 6!:2 '0 1{"1 ] 100000 10 $  a'
> 0.004953
>     (10) 6!:2 '0 1{"1 ] 100000 10 $  a'
> 0.0048413
>     (10) 6!:2 '0 1{"1 ] 100000 10 $  a'
> 0.0046273
>     (10) 6!:2 '0 1{"1 ] 100000 10 $  a'
> 0.00477414
>
>
>
> On Thu, Sep 12, 2013 at 4:29 PM, Raul Miller <rauldmiller at gmail.com> wrote:
>
>> I would note that several things can significantly influence timings.
>> It's also probably not wise to assuming that timing numbers are
>> completely reproducible.
>>
>>     ts '0 1{"1 ] 100000 10 $  a'
>> 0.005122 1.04882e7
>>     ts '0 1{"1 ] 100000 10 $  a'
>> 0.00191 1.04882e7
>>     ts '0 1{"1 ] 100000 10 $  a'
>> 0.00194 1.04882e7
>>
>> Things that can influence timing include the version of the
>> interpreter, the make of the cpu and the amount of available memory
>> (compared to what's being used in the timing). Here, though, we're
>> only using 10MB for intermediate results, which is relatively small on
>> typical current computers.
>>
>> Thanks,
>>
>> --
>> Raul
>>
>> On Thu, Sep 12, 2013 at 3:35 PM, Pascal Jasmin <godspiral2000 at yahoo.ca>
>> wrote:
>>>
>>>
>>> An essay on boxed vs unboxed table data.
>> http://www.jsoftware.com/jwiki/PascalJasmin/Boxed%20vs%20unboxed%20data .
>>>
>>> The results might surprise most of you since there's been signficant
>> performance tuning in J (around boxing) since its earlier days, and jmf and
>> 3!:1 supports boxed data too now.
>>>
>>> Let me know if I've made mistakes, or overlooked something big.
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
>
>


More information about the Programming mailing list