Bug 65797

Summary: nrwt takes a long time to start on Mac
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: abarth, dpranke, eric
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 64491, 65268    

Description Ryosuke Niwa 2011-08-05 16:49:28 PDT
Starting new-run-webkit-tests take a really long time even if it was running one child process.  Compare the following two commands:
Tools/Scripts/old-run-webkit-tests --debug LayoutTests/editing/undo
Tools/Scripts/new-run-webkit-tests --debug LayoutTests/editing/undo

The latter spends as much as time as the former just to spin up DRT.
Comment 1 Adam Barth 2011-08-05 17:02:59 PDT
Yeah, this is an important area for us to improve.  For example, we always spin up the HTTP and WebSocket servers, even when they're not needed.
Comment 2 Eric Seidel (no email) 2011-08-08 10:08:05 PDT
Agreed.  Thank you for the report.  I'm focusing on getting the rest of the bots over to NRWT, but this is very high on my list once that's done.
Comment 3 Dirk Pranke 2011-08-08 13:15:55 PDT
(In reply to comment #1)
> Yeah, this is an important area for us to improve.  For example, we always spin up the HTTP and WebSocket servers, even when they're not needed.

Really? That didn't used to be the case. (I believe we now start the WebSocket server if we only need the HTTP server -- which is a bug -- but we shouldn't start either if we don't need either).
Comment 4 Adam Barth 2011-08-08 13:20:36 PDT
> Really?

I think I was confused.  Pls ignore me.  :)
Comment 5 Eric Seidel (no email) 2011-10-12 14:38:50 PDT
I recently profiled NRWT.  We spend all our time in the worker.  I don't yet have a good way to profile the worker processes, but will add one.  See also bug 65268.
Comment 6 Dirk Pranke 2011-10-12 14:52:06 PDT
You can start by running with --worker-model=inline. I would be surprised if there was any significant performance difference between that and --worker-model=processes (for one child, obviously), but at least with the former you can profile the whole thing.
Comment 7 Dirk Pranke 2012-06-08 17:02:31 PDT
I think this is fixed now. I don't have a debug build handy, but using a release build and running your same test (LayoutTests/editing/undo), NRWT is faster than ORWT. (I was testing repeated runs of both tools, so everything in the filesystem was cached and total time was about 4.5 seconds to run all the tests).

Please re-open if you see something different.