commit | 915a7d565161cc1ef14a37100e175862efd5cd0d | [log] [tgz] |
---|---|---|
author | Justin Cohen <justincohen@chromium.org> | Thu Jun 23 03:12:41 2022 +0000 |
committer | Copybara-Service <copybara-worker@google.com> | Thu Jun 23 05:09:18 2022 -0700 |
tree | 9602a372a06c9a3f3acf1595ccea59a138a2176d | |
parent | a28803a939bb63e0a7dc72e3ce7a09ca6d81b470 [diff] |
Revert "posix: Replace DoubleForkAndExec() with ForkAndSpawn()" This reverts commit 460943dd9a71dc76f68182a8ede766d5543e5341. Reason for revert: This fails to compile in Chromium Android. posix_spawn and posix_spawnp are available in Android NDK 28, but Chromium is building with version 23. https://ci.chromium.org/ui/p/chromium/builders/try/android_compile_dbg/1179765/overview Original change's description: > posix: Replace DoubleForkAndExec() with ForkAndSpawn() > > The DoubleForkAndExec() function was taking over 622 milliseconds to run > on macOS 11 (BigSur) on Intel i5-1038NG7. I did some debugging by adding > some custom traces and found that the fork() syscall is the bottleneck > here, i.e., the first fork() takes around 359 milliseconds and the > nested fork() takes around 263 milliseconds. Replacing the nested fork() > and exec() with posix_spawn() reduces the time consumption to 257 > milliseconds! > > See https://github.com/libuv/libuv/pull/3064 to know why fork() is so > slow on macOS and why posix_spawn() is a better replacement. > > Another point to note is that even base::LaunchProcess() from Chromium > calls posix_spawnp() on macOS - > https://source.chromium.org/chromium/chromium/src/+/8f8d82dea0fa8f11f57c74dbb65126f8daba58f7:base/process/launch_mac.cc;l=295-296 > > Change-Id: I25c6ee9629a1ae5d0c32b361b56a1ce0b4b0fd26 > Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3641386 > Reviewed-by: Mark Mentovai <mark@chromium.org> > Commit-Queue: Mark Mentovai <mark@chromium.org> Change-Id: I59512b1e5f302b02f095d2ab1d3a50e4f8b6ecd7 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3719439 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Justin Cohen <justincohen@chromium.org> GitOrigin-RevId: 6e946c4af851722b9d444af89590d65cd2c3ec38
Crashpad is a crash-reporting system.
Crashpad’s source code is hosted in a Git repository at https://chromium.googlesource.com/crashpad/crashpad.