[OPEN-ILS-DEV] PATCH: utils.c (performance of file_to_string())

Scott McKellar mck9 at swbell.net
Sun Mar 9 11:56:09 EDT 2008


This patch changes the file_to_string function to use fread() instead
of fgets().  Since we're loading the entire file into memory, there's
no reason to load it one line at a time.

I compared both versions with a benchmark that loaded a 33 KB text
file,
taking care to minimize the effects of IO caching by the OS by loading
the same file repeatedly.  The timings varied somewhat, but the new
version was consistently about 7 to 9 times as fast as the old one.
Of course we're talking about only a couple of milliseconds...

Scott McKellar
http://home.swbell.net/mck9/ct/

Developer's Certificate of Origin 1.1 By making a contribution to
this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license indicated
in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source license
and I have the right under that license to submit that work with
modifications, whether created in whole or in part by me, under the
same open source license (unless I am permitted to submit under a
different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person
who certified (a), (b) or (c) and I have not modified it; and

(d) In the case of each of (a), (b), or (c), I understand and agree
that this project and the contribution are public and that a record
of the contribution (including all personal information I submit
with it, including my sign-off) is maintained indefinitely and may
be redistributed consistent with this project or the open source
license indicated in the file.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: utils_c_8.patch
Type: text/x-patch
Size: 1088 bytes
Desc: 1121480265-utils_c_8.patch
Url : http://list.georgialibraries.org/pipermail/open-ils-dev/attachments/20080309/dc8602d4/utils_c_8.bin


More information about the Open-ils-dev mailing list