[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