Recursor 3.5-rc1/2 use 5-10% more CPU than 3.4-pre did. This has been tracked down to r3064. Need to investigate whether we can bring CPU usage back down.
unpair name/proto for NS speed management. Fixes #710
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@3132 d19b8d6e-7fed-0310-83ef-9ca221ded41b
Attachment '' (20130305_string_comparison.patch) https://gist.github.com/5466872
struct CIStringPairCompare makes no sense. I fail to see how it's possible that a.first would be equal to b.first but b.first would not be equal to a.first. Now you are wasting valuable cycles by comparing the strings twice even though the second if clause can only ever be false. It cannot be reached if it would be true.
Also, you could optimize pdns_ilexicographical_compare by checking whether the strings are different length before doing the expensive byte by byte comparison.
CIStringPairCompare reports bigger/smaller, just not equal/not equal. The simplification, therefore, will not work.
r3132 removes the v4/v6 distinction for the ns speed management, thus avoiding this slowdown.