help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why is sscanf() so slow?


From: stefan
Subject: Re: Why is sscanf() so slow?
Date: Wed, 26 Mar 2003 14:07:48 -0600

On Mon, 24 Mar 2003, John W. Eaton wrote:

> On 25-Jan-2003, stefan <address@hidden> wrote:
>
> | Dear Octaver's,
> |
> | first of all:  Thanks for great software.  I am using it now for about two
> | years, especialy for displaying and adjusting measured data (comes from
> | some measurement bus system to computer).  The software which drives these
> | devices almostly always produce tab- or comma-seperated data.
> |
> | For this I do:
> |
> |     while (isstr(line = fgets(fid)))
> |       if (index(line, "#") == 1)
> |         continue;
> |       endif
> |       if (length(line) <= 2)
> |         continue;
> |       endif
> |       numbers = sscanf(line, "%g %g %g %g %g %g %g %g", 8);
> |       for i = 1 : length(numbers)
> |         values(n, i) = numbers(i);
> |       endfor
> |       n = n + 1;
> |     endwhile
> |
> | or very likely...
> |
> | For more than 1000 lines this takes *ages*.
>
> Try preallocating the values array.  Assuming you haven't done that,
> then the code above resized values many times.  If you are not sure of
> the final size, allocate something large, reallocating if necessary
> (but in large chunks, perhaps 2x previous allocation, or similary),
> then resize when you reach eof.  Sscanf is also slow.  If you just
> have numbers in the file, maybe you want to use load instead.  With
> current snapshots, it should support command and tab delimited files
> with comments (beginning with # or % characters, I think).

Right now I am using a modified version of the 'aload.m' which some on
this mailing list sent to me.

I'll also try your hint and tell you whether it gets better...

Thanks a lot,
        address@hidden



-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]