tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Doubling performance of pkgsrc/mk



Hi,

I got fed up with pkgsrc being slow again, so have spent a bit of time recently improving performance.

Here are some benchmarks for the build of pkgtools/url2pkg (chosen as its "build" time is very short so exposes any delays with the infrastructure):

  +----------+---------+--------+-------+
  | OS       | SmartOS | NetBSD | macOS |
  +----------+---------+--------+-------+
  | Baseline |   12.5s |  10.3s |  3.0s |
  | Patched  |    5.7s |   5.3s |  1.4s |
  +----------+---------+--------+-------+

All of the builds were done on very different hardware so the OPSYS differences aren't interesting, but the patched times show a consistent 2x speedup regardless.

I'm obviously testing this work a lot as it touches a huge amount of very important code, but I'd be intested in feedback early on, as well as reports of testing from anyone who wants to try it out.

The branch is here:

  https://github.com/TritonDataCenter/pkgsrc/tree/feature/performance/trunk

I may occasionally rebase against trunk as well as squashing/improving patches, so expect to sometimes see a forced update.

As with previous performance work the bulk of this is simply thanks to reducing the number of fork+exec, using DTrace to identify areas that can be optimised. On SmartOS the baseline build invoked 2391 processes, the patched build only 877.

The good news is there's still a bunch of things that can be improved, most notably around tools creation which is still very expensive.

Cheers,

--
Jonathan Perkin   -   mnx.io   -   pkgsrc.smartos.org
Open Source Complete Cloud   www.tritondatacenter.com


Home | Main Index | Thread Index | Old Index