Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#195 closed defect (fixed)

libc: spawning is very slow

Reported by: bird Owned by: bird
Priority: normal Milestone: libc-0.6.4
Component: libc-backend Version: 0.6.1
Severity: critical Keywords: __spawnve performance
Cc:

Description

There is a performance regression in the __spawnve implementation, it's simply ending up waiting way to long for the child to get out of the embryo state.

Change History (5)

comment:1 Changed 11 years ago by bird

(In [3634]) Fixed serious performance bug. References #195.

comment:2 Changed 11 years ago by bird

(In [3635]) Fixed serious performance bug. References #195.

comment:3 Changed 11 years ago by bird

  • Resolution set to fixed
  • Status changed from new to closed

(In [3636]) Fixed serious performance bug in spawn. Fixes #195.

comment:4 Changed 11 years ago by bird

The spawn performance with 0.6.3 and earlier was less than 10% (8-9% for libc children, and 1-2% for the assembly stub program). I'm now getting 110-115% with libc children and 60-70% with the assembly stub (libc07).

comment:5 Changed 11 years ago by bird

Rewrote the fix in [3643] so that we don't do an active wait/poll, but let the child wake us up. The performance is mostly unchanged, the 110% from the previous comment was perhaps a bit of a lucky run. The more realistic one is in the 90+% range. Testing the wget configure script, it now runs ~20% faster without a cache, while using a configure.cache file the speedup is even higher (~30%).

Note: See TracTickets for help on using tickets.