[fpc-devel] File search
Hans-Peter Diettrich
DrDiettrich1 at aol.com
Fri Aug 6 00:38:32 CEST 2010
IMO the file search performance can be improved, in detail for files to
compile.
Currently FileExists is called for every possible directory, name case
and possible extensions. This means that the OS may have to search the
same directory multiple times, for all these cases - O(n). This can be
reduced to one search, when the (possible) filenames are matched in one
FindFirst/FindNext run - O(1).
For compiler purposes we IMO can assume that only the file extension can
be unknown (.pp, .pas...), so that wildcard handling can be reduced to
an match of the name, followed by an match with the list of possible
extensions.
Further optimizations can be applied to specialized FindFirst/FindNext
implementations, by dropping everything not related to filename matching
(get file attributes, file times...).
Has something like this already been tested? I've seen that compiler
directory caching is disabled - for what reason?
I'll try to implement and test the simple case (case insensitive Windows
filesystems). The procedures for case sensitive filesystems will be a
bit harder to implement, of course.
Any comments are welcome :-)
DoDi
More information about the fpc-devel
mailing list