Brian Pane <[EMAIL PROTECTED]> writes:

[...]

> Thanks for posting the oprofile data.  The results 
> look good.  I haven't had time to read through the
> code in detail yet, but I'll do that this afternoon.

Thanks alot, Brian!

> Based on a first glance at the code, the only thing
> that worries me is the comment about apr_table_compress()
> taking quadratic time.  I think it's possible to use a
> mergesort-based algorithm to do the compress in
> n*log(n) time and linear space, though.

It'll likely be slower for small-sized tables, though,
just like the red-black tree implementation. IIRC httpd has
a cutoff for the maximum number of input headers, so this 
"worst-case-quadratic-time" shouldn't present a DOS-able
issue for httpd.

In any case, it's no problem to keep the complex
algorithms here for larger tables; but apr_tables_get()
is still going to be O(n) in such cases.  Unfortunately,
any sort of conditionals in apr_tables_get tends to kill
its httpd (many small tables) performance.

Maybe the documentation should just recommend apr_hash in
cases where the number of elements is more than what is
typical (a few dozen?) for httpd.

-- 
Joe Schaefer

Reply via email to