RESOLVED FIXED 100514
Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences
https://bugs.webkit.org/show_bug.cgi?id=100514
Summary Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPrefe...
Antti Koivisto
Reported 2012-10-26 06:38:24 PDT
DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in the document. We should cache the result as the function is relatively slow and the result changes rarely.
Attachments
patch (4.07 KB, patch)
2012-10-26 08:33 PDT, Antti Koivisto
andersca: review+
Antti Koivisto
Comment 1 2012-10-26 08:33:19 PDT
Antti Koivisto
Comment 2 2012-10-26 08:49:49 PDT
Antti Koivisto
Comment 3 2012-10-26 08:50:55 PDT
Alexey Proskuryakov
Comment 4 2012-10-26 09:06:08 PDT
Comment on attachment 170934 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=170934&action=review Nice! > Source/WebCore/ChangeLog:9 > + DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in > + the document. The function is relatively slow. This is not quite accurate, but close enough in effect. It happens (1) if the queue is empty, which should not affect performance, and (2) when firing the timer, which can indeed. > Source/WebCore/ChangeLog:18 > + Add constructor. Also fixes a bug, m_requestsInFlight was not initialized. This is a regression from <http://trac.webkit.org/changeset/112396>.
Alexey Proskuryakov
Comment 5 2012-10-26 09:07:24 PDT
> It happens (1) if the queue is empty, which should not affect performance, and (2) when firing the timer, which can indeed. Hmm, I'm now seeing that my expectation was not correct. Strange.
Antti Koivisto
Comment 6 2012-10-26 09:27:13 PDT
(In reply to comment #4) > This is not quite accurate, but close enough in effect. It happens (1) if the queue is empty, which should not affect performance, and (2) when firing the timer, which can indeed. It was ~2% of the trace of a run over popular web sites. That's huge for a single function.
Antti Koivisto
Comment 7 2012-10-26 09:30:22 PDT
If the proxy is enabled (in the test case it is) the function gets invoked for every link separately.
Alexey Proskuryakov
Comment 8 2012-10-26 13:40:59 PDT
D'oh.
Note You need to log in before you can comment on or make changes to this bug.