Return-Path: Delivered-To: apmail-httpd-cvs-archive@httpd.apache.org Received: (qmail 15479 invoked by uid 500); 31 Dec 2001 09:51:40 -0000 Mailing-List: contact cvs-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list cvs@httpd.apache.org Received: (qmail 15468 invoked by uid 500); 31 Dec 2001 09:51:40 -0000 Delivered-To: apmail-httpd-2.0-cvs@apache.org Message-ID: <063e01c191e0$b0518980$95c0b0d0@v505> From: "William A. Rowe, Jr." To: , References: <20011231081832.56907.qmail@icarus.apache.org> Subject: Re: cvs commit: httpd-2.0/server core.c request.c Date: Mon, 31 Dec 2001 03:49:38 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 X-OriginalArrivalTime: 31 Dec 2001 09:51:15.0992 (UTC) FILETIME=[B0518980:01C191E0] X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N > brianp 01/12/31 00:18:32 > > Modified: include http_core.h > server core.c request.c > Log: > Performance fix for prep_walk_cache(): > > Moved the directory/location/file-walk caches from the > request's pool userdata hash table to the core_request_config > struct. > > This change removes about 60% of the processing time from > prep_walk_cache(). Brian... this is a very cool patch... > +typedef enum { > + AP_WALK_DIRECTORY, > + AP_WALK_LOCATION, > + AP_WALK_FILE, > + AP_NUM_WALK_CACHES > +} ap_walk_cache_type; > + > typedef struct { > /* bucket brigade used by getline for look-ahead and > * ap_get_client_block for holding left-over request body */ > struct apr_bucket_brigade *bb; > + > + /* a place to hold per-request working data for > + * ap_directory_walk, ap_location_walk, and ap_file_walk */ > + void *walk_cache[AP_NUM_WALK_CACHES]; > } core_request_config; However, can we find a way to make AP_NUM_WALK_CACHES a bit more flexible? See, for example, mod_proxy. We are doing the same bit there. Would you mind extending your patch to allow registration [at startup] of other cache members? This could be used for walk caches, or for other sorts of per-request cached data that currently resides in notes (and should reside in userdata, until you pointed out how slow that solution really is.) In any case, nice work :) Bill