[Github-comments] [geany/geany] Autotools: Really slow on Windows (#2305)

Matthew Brush notifications at xxxxx
Sun Sep 15 22:33:55 UTC 2019


I know this isn't a Geany issue directly, but maybe there's something that can be done to improve the build times. I ran some tests to measure the actual build times.

## Machines

  * "Linux Native"
    * Ubuntu 18.04
    * 32GB RAM
    * 6-core i7 @ 3.7GHz
    * Entirely on SSD
  * "Windows with MSYS2"
    * Windows 10 Pro
    * 32GB RAM
    * 6-core i7 @ 3.7GHz
    * Geany source code on SSD, system headers and build tools on mechanical HDD.
  * "Linux VM Guest on Windows Host"
    * ElementaryOS from 2018, in VirtualBox on Windows 10
    * 4GB RAM
    * 1-core emulated CPU (presumably 3.7GHz + VM overhead)
    * All files in virtual disk stored on a mechanical HDD.

## Tests

  * "configure"  - `./configure [opts]`
  * "make" - `make -j12` after a `make clean`
  * "imake" - `touch src/build.h && make -j12` to do an incremental build
  * "install" - `make -j12 install`

I used 12 `make` jobs on account of the 12 hyperthreads in the CPU, even in the VM which makes no sense since I only assigned it a single core. I used `time` on the above commands and took the average of 3 runs for each. All 3 runs were quite similar in all cases.

## The results

![geanybuilds](https://user-images.githubusercontent.com/181177/64928352-e9a8d680-d7cb-11e9-804a-bf1647ce7a2f.png)

The Y axis is in seconds.

## Observations

  * As expected `configure` was really slow on Windows since it spawns tons of processes.
  * The Windows build seems to be spending a large portion of the time linking which is why even incremental build was still very slow.
  * In the wimpy Linux VM with 1 core, the vast majority of the compile time was spent compiling Scintilla's C++ code, shown by how the incremental build that didn't touch C++ code is comparatively fast.
  * I don't know whether it's the `ld` linker which is slow, the `libtool` stuff, or some combination.

## Possible Solutions?

The linking times even in the Libtool helper libraries is really slow, so maybe for Windows we could not use helper libraries and link all of the `libgeany` objects together in one go.

Maybe there's a way to get linking itself to be faster, needs investigation. Maybe a different build of `libtool` or something?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/2305
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20190915/9af72616/attachment.html>


More information about the Github-comments mailing list