On Thu, Jun 4, 2009 at 12:35 AM, Mike Belshe <mbel...@google.com> wrote: > > > On Thu, Jun 4, 2009 at 12:30 AM, Meryl Silverburgh > <silverburgh.me...@gmail.com> wrote: >> >> On Wed, Jun 3, 2009 at 11:09 PM, Mike Belshe <mbel...@google.com> wrote: >> > >> > >> > On Wed, Jun 3, 2009 at 10:40 PM, Meryl Silverburgh >> > <silverburgh.me...@gmail.com> wrote: >> >> >> >> On Tue, Jun 2, 2009 at 5:00 PM, Brett Wilson <bre...@chromium.org> >> >> wrote: >> >> > On Tue, Jun 2, 2009 at 4:57 PM, Meryl Silverburgh >> >> > <silverburgh.me...@gmail.com> wrote: >> >> >> >> >> >> I am reading this document >> >> >> >> >> >> >> >> >> "http://dev.chromium.org/developers/how-tos/getting-around-the-chrome-source-code" >> >> >> about chromium source code: >> >> >> It said: >> >> >> >> >> >> renderer: Code for the subprocess in each tab. This embeds WebKit >> >> >> and >> >> >> talks to browser for I/O. >> >> >> >> >> >> Does that mean chromium do not use the HTTP stack/library that >> >> >> Webkit >> >> >> is using? >> >> > >> >> > WebKit uses different HTTP stacks depending on the port. We use a >> >> > different one than any other ports. >> >> > >> >> >> And does that mean all the I/O of each tab (webkit renderer) will be >> >> >> sent to 'browser' for I/O, and there is 1 I/O thread in the browser >> >> >> to >> >> >> handle the I/O requests from ALL tab? >> >> > >> >> > Correct. >> >> > >> >> >> >> That you. But if all I/O of the tab will be sent to and queued up in 1 >> >> I/O thread in 'browser', >> >> will that become the bottleneck (as supposed to each tab has its own >> >> i/o thread and each can load thing independently)? >> > >> > The rule is that the work done on the io thread needs to be very very >> > quick. >> > So far, we've been reasonably successful at that. We use automated >> > tests >> > to search for regressions. >> > But these are just theories. Run it in the profiler, and see for >> > yourself >> > if it works well :-) >> > >> >> Thank you for your clarification. >> If i understanding correctly, I/O thread needs to http request network >> resources (e.g. image files, js files, css files). And how fast that >> http request is done is dependent on how far the other end sending the >> file back, right? So it is not up to chromium find each i/o request >> very very quick. Am i right?
I think the confusion here is you might be assuming that Chromium handles the I/O synchronously. Chromium handles it asynchronously, in chunks if necessary. Therefore, if the other end is not sending the data slowly, the Chromium I/O thread only reads as much as is available. Then it handles other I/O tasks or goes idle until more data becomes available. It does not block the I/O thread while waiting for servers to send data. > > Sure, but the thread is completely idle while we wait for the network and > can therefore do other things. The amount of CPU to fetch network resources > is tiny compared to the time to render them. The IO thread is effectively a > dispatcher here; he gets the network requests started, and does mild > processing of data when it arrives. But he hands the real work to the > renderer and the webkit thread. > Again, if you think there is a problem, open it up in a profiler. I've run > the profiler many times, and I don't think this is a bottleneck. > Mike > >> >> >> >> >> >> >> >> And does browser I/O thread gives priority to I/O from the current >> >> active tab (the only tab which is in the foreground)? >> > >> > If it ever profiles as a bottleneck, then we should definitely add >> > priorities. Right now, we don't do much. >> > Background tabs do take background priorities, which indirectly helps. >> > Mike >> > >> >> >> >> >> >> >> >> > Brett >> >> > >> >> >> >> >> >> > >> > > > > > > --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---