On Sat, 2008-03-29 at 14:39 -0500, Dan McGee wrote:
On Sat, Mar 29, 2008 at 2:36 PM, K. Piche <kpiche@rogers.com> wrote:
Interesting. I was in the process of reading the whole file into a buffer and having parse_descfile parse that. Oh well...
That is quite similar to Xavier's patch that keeps an internal buffer in archive_fgets() in order to reduce calls into libarchive, which seems to cut the time by half to parse the entire community DB (.12 vs .07 seconds locally on my desktop machine).
True. We know how large the file is during the archive read from the entity struct so I figured it would be easier to malloc a buffer and pop the whole file in it. Parsing the buffer it would have required strdup'ing lines but no code would be required for overrunning a line buffer - all sizes are known. As an aside: is there any interest in some unit testing code? I've looked at the check library and written a few tests for the alpm_list stuff. Unfortunately a lot of our functions are difficult to test individually. For instance instead of passing a buffer with test data to test parse_descfile you need to pass an archive.
No matter how you cut it, not writing a temp file definitely saves time.
-Dan
_______________________________________________ pacman-dev mailing list pacman-dev@archlinux.org http://archlinux.org/mailman/listinfo/pacman-dev -- K. Piche <kpiche@rogers.com>