GitHub 动作:自制程序慢
GitHub Actions: homebrew slow
我一生中从未使用过 macOS,所以我不确定这是否是 GitHub 操作使用的图像、自制程序本身或我如何使用它的问题:
我正在尝试使用 GitHub 操作在 Ubuntu 和 macOS 上构建和测试 C++ 项目。在这两种情况下,使用 CMake 构建代码只需要大约一分钟,但是,安装依赖项(Boost 和 Lua)在 macOS 上需要三分钟多,而在 Ubuntu 上需要 20 秒。我的 workflow.yml
看起来如下:
jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
INSTALL_DEPS: sudo apt-get install -yq libboost-dev libboost-graph-dev lua5.3 liblua5.3-dev
CC: gcc
CXX: g++
- os: macos-latest
INSTALL_DEPS: brew install boost lua
CC: clang
CXX: clang++
steps:
- uses: actions/checkout@v2
- name: install-dependencies
run: ${{ matrix.INSTALL_DEPS }}
# ...
似乎 boost
是我可以使用自制软件安装的唯一软件包,而不是更精细的 libboost-dev
+ libboost-graph-dev
.
如果我不想在 macOS 上从源代码构建 Boost,我可以在这里做些什么吗?我知道可以使用 GitHub 操作来缓存依赖项,但这对于我的用例来说似乎过于复杂,而且我实际上不知道如何在第一种情况下将其与自制软件一起使用。
我做了一个小测试来检查在 Ubuntu
上使用 brew 需要多长时间
jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
INSTALL_DEPS: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" && date && brew install boost lua && date
#INSTALL_DEPS: sudo apt-get install -yq libboost-dev libboost-graph-dev lua5.3 liblua5.3-dev
CC: gcc
CXX: g++
- os: macos-latest
INSTALL_DEPS: brew install boost lua
CC: clang
CXX: clang++
steps:
- uses: actions/checkout@v2
- name: install-dependencies
run: ${{ matrix.INSTALL_DEPS }}
然后到运行brew install boost lua
大概用了26秒
Fri Dec 18 11:16:02 UTC 2020
Fri Dec 18 11:16:28 UTC 2020
我在 MacOS 上的哪个位置获得了 2:33
、46s
、45s
。因此,与最高值相比,这是一个很大的区别。但是将 45s 与 26s 进行比较则不然(仍然差不多是 2 倍,但听起来并没有那么糟糕)。我认为优化它实际上没有意义。可能有很多方面可能会产生影响,甚至这条消息也可能对此产生影响
如果您正在以良好的方式完成管道,请专注于此,因为您可能会浪费大量时间争取最佳性能而运气不佳,因为某些方面可能超出您的控制。
我一生中从未使用过 macOS,所以我不确定这是否是 GitHub 操作使用的图像、自制程序本身或我如何使用它的问题:
我正在尝试使用 GitHub 操作在 Ubuntu 和 macOS 上构建和测试 C++ 项目。在这两种情况下,使用 CMake 构建代码只需要大约一分钟,但是,安装依赖项(Boost 和 Lua)在 macOS 上需要三分钟多,而在 Ubuntu 上需要 20 秒。我的 workflow.yml
看起来如下:
jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
INSTALL_DEPS: sudo apt-get install -yq libboost-dev libboost-graph-dev lua5.3 liblua5.3-dev
CC: gcc
CXX: g++
- os: macos-latest
INSTALL_DEPS: brew install boost lua
CC: clang
CXX: clang++
steps:
- uses: actions/checkout@v2
- name: install-dependencies
run: ${{ matrix.INSTALL_DEPS }}
# ...
似乎 boost
是我可以使用自制软件安装的唯一软件包,而不是更精细的 libboost-dev
+ libboost-graph-dev
.
如果我不想在 macOS 上从源代码构建 Boost,我可以在这里做些什么吗?我知道可以使用 GitHub 操作来缓存依赖项,但这对于我的用例来说似乎过于复杂,而且我实际上不知道如何在第一种情况下将其与自制软件一起使用。
我做了一个小测试来检查在 Ubuntu
上使用 brew 需要多长时间jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
INSTALL_DEPS: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" && date && brew install boost lua && date
#INSTALL_DEPS: sudo apt-get install -yq libboost-dev libboost-graph-dev lua5.3 liblua5.3-dev
CC: gcc
CXX: g++
- os: macos-latest
INSTALL_DEPS: brew install boost lua
CC: clang
CXX: clang++
steps:
- uses: actions/checkout@v2
- name: install-dependencies
run: ${{ matrix.INSTALL_DEPS }}
然后到运行brew install boost lua
大概用了26秒
Fri Dec 18 11:16:02 UTC 2020
Fri Dec 18 11:16:28 UTC 2020
我在 MacOS 上的哪个位置获得了 2:33
、46s
、45s
。因此,与最高值相比,这是一个很大的区别。但是将 45s 与 26s 进行比较则不然(仍然差不多是 2 倍,但听起来并没有那么糟糕)。我认为优化它实际上没有意义。可能有很多方面可能会产生影响,甚至这条消息也可能对此产生影响
如果您正在以良好的方式完成管道,请专注于此,因为您可能会浪费大量时间争取最佳性能而运气不佳,因为某些方面可能超出您的控制。