On Sun, Feb 03, 2008, Amos Jeffries wrote: > > > >Please give an example or two, where the performance would noticeably > >suffer for standard methods. > > There were several switch(e->method) in what I think is the request > processing pathways. I was thinking making that switch into a series of > string comparisons (on image()) would increase the processing ops where > the current index int checks are faster. > src/client_side.cc:630 - clientIsContentLengthValid(HttpRequest * r) > src/forward.cc:467 - checkRetriable() > > I don't think it would be a _great_ sufferance, but it would be a small > unnecessary backslide. Making the enum 'methods which squid has special > internal processes for' would be simple and easier to maintain than > attempting to keep a comprehensive list with unexpected 'others' also > accepted silently. > And have the benefit of a low amount of change to the code for the same > gain.
The current codebase is too poor performing for that particular string comparsion to have a noticable effect on performance. Of course, if you guys actually want things to perform comparable to what other projects are doing in the future, this sort of "death by a thousand cuts" is one sure fire way to make that more difficult. Just abstract stuff out enough so the "do i use the ID or do I use a string" is done in one place, with another method exporting the "data" to use in the md5 key generation. Hm! Adrian
