[MacPorts] #54370: gmic @2.0.2: buildbot build gets cancelled because 20 minutes go by with no output
MacPorts
noreply at macports.org
Sun Jun 25 04:23:37 UTC 2017
#54370: gmic @2.0.2: buildbot build gets cancelled because 20 minutes go by with no
output
-------------------------+-------------------------
Reporter: ryandesign | Owner: Schamschula
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: gmic |
-------------------------+-------------------------
Comment (by ryandesign):
I ran a build of gmic 2.0.2 on my 2.7GHz Core i7 MacBook Pro with Touch
Bar, timing how long each step took:
{{{
sudo port -dns install gmic -universal 2>&1 | ts -i "%H:%M:%.S" | tee
gmic.log
}}}
It looks like the 14,500-line source file gmic.cpp gets compiled four
times, into four different things:
1. the gmic executable, which took 14m29s to build
2. the gmic_gimp_gtk gimp plugin, which took 16m8s to build
3. the libgmic.a static library, which took 14m15s to build
4. the libgmic.dylib dynamic library, which took 14m5s to build
The buildbot worker machines are slower than my laptop—they're Xserves
from 2009 with either 2.26 or 2.66GHz Xeon Nehalem processors—which is why
they take longer.
I looked at Activity Monitor while some of those products were being
built, and the single clang process got up to 3.75GB of memory used, so
it's understandable that trying to build all four in parallel would exceed
the available memory of even a Mac with 16GB RAM, since the OS takes some
of the RAM. Our 64-bit buildbot workers have 8GB RAM each.
I suppose the size of this source file explains why it would take so long
to build and takes so much memory. I'm not sure if there would be a way
for the developers to split this file up and compile it in smaller
sections.
I don't know anything about gmic but if code can be used in several
ways—e.g. as an executable, and a plugin, and a library—it seems like the
majority of the code would be shared and would only need to be compiled
once.
--
Ticket URL: <https://trac.macports.org/ticket/54370#comment:3>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list