[Fwd: [OctDev] slow structs]

Jonathan Kotta jpkotta at gmail.com
Thu Dec 18 12:19:27 CST 2008


On 12/17/08, John W. Eaton <jwe at octave.org> wrote:
> On 17-Dec-2008, Daniel J Sebald wrote:
>
>  | Subject: [OctDev] slow structs
>  | Date: Wed, 17 Dec 2008 18:13:17 -0600
>  | From: Jonathan Kotta <jpkotta at gmail.com>
>  | To: octave-dev at lists.sourceforge.net
>
> |
>  | I have a problem where a vector within a struct is much slower to
>  | index than a plain vector (~8x slower) .
>  |
>
> | x = zeros(1e6,1);
>  | s.x = x;
>  | subset = 500e3:600e3-1;
>  | y = randn(length(subset),1);
>  | for i = 1:5
>  |    tic; x(subset) = y; toc;
>  | end
>  | for i = 1:5
>  |    tic; s.x(subset) = y; toc;
>  | end
>
>
> Accessing a structure element requires looking up the element in a map
>  using the field name (a character string).  You don't expect that
>  would be free, do you?
>
>
>  jwe
>

No, I guess I just didn't expect it to be that much slower.  Anyway, I
think I solved my original problem; my example was a simplified
version of it.  Thanks for the replies.


-- 
Thanks,

Jonathan Kotta

Hofstadter's Law:
    It always takes longer than you expect, even
    when you take into account Hofstadter's Law.


More information about the Octave-maintainers mailing list