michaeleisel / zld

A faster version of Apple's linker
MIT License
1.19k stars 50 forks source link

Daemonization #30

Closed michaeleisel closed 4 years ago

michaeleisel commented 4 years ago

This ticket is to discuss at a high-level using daemonization to improve linking time. Currently, we do some file-system caching, but that requires both the complexity and CPU overhead of serialization. Here are some questions:

The first question should be relatively easy for anyone who manages a large-scale build system to answer for their own case. The others are very exploratory.

rmaz commented 4 years ago

would daemonization cause any hassles with build systems at scale?

Bazel has a concept of persistent workers to work with daemons: https://blog.bazel.build/2015/12/10/java-workers.html

based on what we can daemonize, would zld perform better in a distributed build system if it used file caching rather than daemonization?

I think this is the main point. If you consider Bazel and its remote execution model, there is likely nothing to be gained by daemonizing due to lack of shared state between actions on nodes.

Having said that, keeping this as just a local incremental Xcode win is still worth considering.

michaeleisel commented 4 years ago

closing for now, i'm probably not going to drive any large-scale optimizations right now besides low-hanging fruit (although happy to review if anyone does). let's see how progress goes with lld