[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Fwd: [OctDev] slow structs]
From: |
Jonathan Kotta |
Subject: |
Re: [Fwd: [OctDev] slow structs] |
Date: |
Thu, 18 Dec 2008 12:19:27 -0600 |
On 12/17/08, John W. Eaton <address@hidden> 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 <address@hidden>
> | To: address@hidden
>
> |
> | 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.