that sounds good.

it's just like constant-folding :)

can you generalise it any?  Alias and mod_userdir can add more constant
factors in the path.

-dean

On Fri, 22 Jun 2001, Brian Pane wrote:

> More fun with gprof...
> directory_walk is one of the bigger consumers of user-mode CPU time in
> the current 2.0 httpd source, due largely to its calls to
> ap_merge_per_dir_configs.
>
> For a typical configuration that has one <Directory> config for '/' and
> another for
> the document root path, it looks like all requests for real files will
> follow the
> same pattern:
>   * Initialize per_dir_defaults to be the default_lookups for the vhost
> matching
>      the request
>   * Merge the configs for '/'
>   * Merge the configs for the document root path
>
> I.e., the same merge of the / and /document/root configs is happening on
> every
> request.
>
> Assuming that this configuration style (with a <Directory> block for the
> document root path) is indeed common, would it be feasible to precompute
> the merge of the '/' configs with the /document/root configs after
> initialization
> to support optimized handling of this case in directory_walk?  In the
> implementation
> I'm thinking of, the logic in directory_walk would look something like:
>     if (path begins with sconf->ap_document_root) {
>           per_dir_defaults = precomputed merged configs for document root;
>           scan the rest of the path (after the docroot prefix) for
> possible additional dir matches;
>     }
>     else {
>         use the current algorithm;
>     }
>
> Would that sort of optimization make sense, or is it too special-purpose
> (or too
> incorrect, even) to be generally useful?
>
> Thanks,
> --Brian
>
>
>

Reply via email to