Re: Finding slowdowns in pkg_install (continuations
> -I tried ... buffering ... the +CONTENTS file parsing function, and the
> majority of the time it yielded good results ....
One approach I prototyped sometime back was to use
libarchive in pkg_add as follows:
* Open the archive
* Read +CONTENTS directly into memory (it's
guaranteed to always be first in the archive)
* Parse all of +CONTENTS at once
* Continue scanning the archive, disposing
of each file as it appears in the archive.
Based on my experience with this, I would
suggest you just read all of +CONTENTS
directly into memory at once and parse
the whole thing in a single shot.
fopen(), then fstat() to get the size,
then allocate a buffer and read the whole
thing, then fclose(). You can then
parse it all at once.
As a bonus, your parser then becomes a nice
little bit of reusable code that reads
a block of memory and returns a structure describing
the package metadata.
Tim Kientzle
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
討論串 (同標題文章)
完整討論串 (本文為第 2 之 3 篇):