Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 43e9ce6d755a8d8ae6c2c175c93fa4793dbe9bd3
      
https://github.com/WebKit/WebKit/commit/43e9ce6d755a8d8ae6c2c175c93fa4793dbe9bd3
  Author: Chris Dumez <[email protected]>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M Source/WebCore/bindings/scripts/generate-bindings-all.pl

  Log Message:
  -----------
  Speed up generate-bindings-all.pl by using fork() without exec()
https://bugs.webkit.org/show_bug.cgi?id=313202

Reviewed by Darin Adler (OOPS\!).

Previously, generate-bindings-all.pl spawned ~61 separate Perl
processes (batches of 30 files), each of which had to start a new
Perl interpreter, compile ~10K lines of modules (IDLParser,
CodeGenerator, CodeGeneratorJS), parse IDLAttributes.json, and
parse supplemental dependencies.

Now, modules and shared data are loaded once in the parent process,
and forked children inherit everything via copy-on-write memory.
Batch sizing is also changed from a fixed 30 to ceil(total/numOfJobs)
to create exactly numOfJobs equal batches. IDL file paths are also
pre-resolved via realpath in the parent to avoid per-file syscalls
in children.

Full regeneration of 1823 IDL files on a 16-core machine:
- Wall time: 4.2s -> 2.1s (2x faster)
- User CPU: 11.7s -> 6.1s
- System time: 8.7s -> 3.7s

No-op builds are unaffected (~0.3s).

* Source/WebCore/bindings/scripts/generate-bindings-all.pl:
(spawnGenerateBindingsIfNeeded):
(spawnCommand): Deleted.

Canonical link: https://commits.webkit.org/311965@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to