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.
In reply to Re: Assining data to an array is slow..
by chromatic
in thread Assining data to an array is slow..
by smferris
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |