yaml / yaml/libyaml

A comparison of the differing build scripts configure and compile times

Open
#99 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
1.2k
Forks
370
PR merge metrics
No merged PRs in 30d

Description

So, I've been doing some comparisons on the speed of various build
types and thought I'd report it here for possible adjustments to how
the ci's do their jobs:

cmake with gnu make backend

time cmake ..
real    0m0.324s
user    0m0.234s
sys     0m0.090s

time make -j1
real    0m2.520s
user    0m2.154s
sys     0m0.359s

cmake with ninja 'make' backend

time cmake .. -G"Ninja"
real    0m0.267s
user    0m0.204s
sys     0m0.064s

time ninja -j1
real    0m2.264s
user    0m1.997s
sys     0m0.264s

autotools ./configure && make

time ./configure
real    0m1.474s
user    0m1.111s
sys     0m0.492s

time make -j1
real    0m8.052s
user    0m7.643s
sys     0m0.456s

As you can see, using the autotools ./configure is something like 5-6 times slower,
and make is much faster using the cmake generated Makefile's.

Perhaps it would be a good idea to switch the ci over to cmake & ninja if possible.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the current CI setup and the build commands shown: ./configure, make, cmake .., and ninja. Benchmark the existing paths and determine whether CI can use CMake with Ninja; done means the CI configuration adopts the faster path without breaking builds.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake
Domain
build-system, ci-cd
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.