[chromium-dev] Re: Question about chromium architecture

2009-06-04 Thread Meryl Silverburgh

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?





 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
-~--~~~~--~~--~--~---



[chromium-dev] Re: Question about chromium architecture

2009-06-04 Thread Mike Belshe
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?


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
-~--~~~~--~~--~--~---



[chromium-dev] Re: Question about chromium architecture

2009-06-03 Thread Meryl Silverburgh

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)?

And does browser I/O thread gives priority to I/O from the current
active tab (the only tab which is in the foreground)?



 Brett


--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Question about chromium architecture

2009-06-02 Thread Brett Wilson

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.

Brett

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---