in reply to Get content of a big text file on a server
If the server is configured for Range Requests; and if you can estimate where the 10,000 lines you want will start; then you can save downloading the whole lot and just get the bit you need. Which will be much faster.
For example. You say that the file is 10MB and that is 150,000 lines; and you want just the last 10,000. Assuming reasonably equal length lines, they will average 70 chars per line, so all you want is the last 700kb which is just 7% of the whole thing.
Using LWP::UserAgent you can do a range request something like this like this:
$ua->get( $url, Range => 'bytes=-1000000' );
That will fetch the last million chars of the file which you can read backward to get your 10,000 lines.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Get content of a big text file on a server
by Shuzaku (Initiate) on Aug 12, 2009 at 09:33 UTC |