in reply to Assining data to an array is slow..
The first snippet doesn't do anything useful. It unpacks things, then throws away the results. You might as well not open the file at all. A program like that will run in approximately zero seconds. Much faster!
As for the second snippet, yes, there's memory allocation for each iteration. That's because unpack creates and you assign new values to @data for each row. You can't get around that if you want to do something with the data. And, depending on your data structure, unpack is probably the fastest way to get at it.
Assuming your code handles exactly 2.1 million rows and the code runs in 70 seconds, that's 30,000 iterations per second. That's pretty fast.
This falls in the category of "things you can't optimize away without breaking the program" -- you're not using regular expressions to get at the data, which would slow you down, and you're not using split, which is probably slower than unpack in this case.
You're probably as fast as you can get without removing anything useful.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Assining data to an array is slow..
by smferris (Beadle) on Mar 01, 2001 at 04:30 UTC | |
by chromatic (Archbishop) on Mar 01, 2001 at 05:18 UTC | |
by smferris (Beadle) on Mar 02, 2001 at 19:00 UTC |