[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Slowdown in assignment mystery
From: |
John Swensen |
Subject: |
Slowdown in assignment mystery |
Date: |
Wed, 13 Jun 2007 09:04:51 -0400 |
User-agent: |
Thunderbird 2.0a1 (X11/20060807) |
I have a fairly simple example that has me perplexed. Below are the two
code listings. As a little background, the ocw_grab_frame() function
returns a uint8 matrix. Also, this computer has 4GB of RAM, and we are
running this from a Linux box with X11 *not* running so less than 300MB
is in use before running octave and the swap hasn't been touched. I
would expect the first listing to run the fastest. Since we are
pre-allocating the space for the images, then it seems like it should be
a simple memcpy into the new buffer. Contrary to this assumption, the
first listing has a mean(tocs)=200ms and std(tocs)=10ms, where the
second listing has a mean(tocs)=11.2ms and std(tocs)=1.5ms. I am a
little confused, so maybe someone has a suggestion.
John Swensen
Listing 1:
imgs = uint8(zeros(480,640,100));
for I=1:100
tic;
imgs(:,:,I) = ocw_grab_frame();
tocs(I) = toc;
end
Listing 2:
for I=1:100
tic;
img = ocw_grab_frame();
tocs(I) = toc;
end
- Slowdown in assignment mystery,
John Swensen <=