macOS - brew 提速的方法

本文介绍了如何通过更改homebrew的源来提高在macOS上使用brew的效率。步骤包括在终端中替换git源,然后更新brew,从而显著加快`brew update`和`brew install`的速度。
部署运行你感兴趣的模型镜像

说明

由于homebrew 默认的源是在github,而大陆连接github非常的慢,所以提速的方法是修改homebrew 的源为国内源

步骤

打开macos 的终端,

替换git的源

$ cd$(brew —repo)”
$ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
$ cd$(brew —repo)/Library/Taps/homebrew/homebrew-core”
$ git remote set-url origin 	https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

更新brew

$ brew update

注意这里需要等待一会,因为要更新资源。
更新完后使用brew update,brew install速度变快很多了,不会卡在那半天没动静,替换镜像完成。

复原步骤

# 步骤一
$ cd "$(brew --repo)"
$ git remote set-url origin https://github.com/Homebrew/brew.git
# 步骤二
$ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
$ git remote set-url origin https://github.com/Homebrew/homebrew-core
# 步骤三
$ brew update

附一些 brew 的常用命令

#诊断homebrew
$ brew doctor

#查看homebrew版本
$ brew -v

#查看已安装的包
$ brew list

#安装包
$ brew install packageName

#卸载包
$ brew uninstall packageName

#查找包
$ brew search packageName

#查看包信息
$ brew info packageName 

#更新homebrew
$ brew update

#查看帮助信息
$ brew -h

您可能感兴趣的与本文相关的镜像

Qwen-Image

Qwen-Image

图片生成
Qwen

Qwen-Image是阿里云通义千问团队于2025年8月发布的亿参数图像生成基础模型,其最大亮点是强大的复杂文本渲染和精确图像编辑能力,能够生成包含多行、段落级中英文文本的高保真图像

<think> 我们被要求解决在VSCode中使用arm-none-linux-gnueabi-gcc编译速度慢的问题。 根据引用[4]提到,我们可以通过使用新生成的编译器再次编译自身(即二次编译)来去除差异性,这可能会提高编译器的效率。但是,这通常是在构建交叉编译器时进行的优化,而不是在用户使用编译器时的优化。 然而,用户的问题是在VSCode中使用该交叉编译器编译项目时速度慢。因此,我们需要考虑其他方面的优化。 可能的原因和解决方法: 1. 编译选项优化:调整编译选项,例如优化级别(-O1, -O2等),但注意过高优化级别可能导致编译时间增加。 2. 预编译头文件:对于大型项目,使用预编译头文件可以显著减少编译时间。 3. 并行编译:使用make的-j参数或多线程编译(如cmake的-j)来并行编译多个文件。 4. 增量编译:确保只重新编译修改过的文件,而不是每次全量编译。 5. 使用更快的存储设备:编译速度可能受限于磁盘I/O,使用SSD会更快。 6. 减少头文件依赖:通过前向声明、移除不必要的头文件包含等。 7. 使用ccache:ccache是一个编译器缓存,可以缓存之前编译的结果,当相同的编译再次出现时,直接使用缓存结果。 8. 检查病毒扫描软件:有时病毒扫描软件会扫描编译生成的文件,导致变慢,可以添加排除目录。 在VSCode中,通常我们通过配置任务(tasks.json)来调用编译命令,因此可以在任务中启用并行编译和ccache。 因此,解决方案包括: 1. 在编译命令中添加并行编译选项(如make -j8,其中8是线程数,根据CPU核心数设定)。 2. 安装并配置ccache。 步骤: 1. 安装ccache: 在Ubuntu上:sudo apt install ccache 2. 配置ccache:可以通过设置环境变量来使用ccache,例如: 在~/.bashrc中添加: export CCACHE_PREFIX=arm-none-linux-gnueabi- export CC="ccache arm-none-linux-gnueabi-gcc" export CXX="ccache arm-none-linux-gnueabi-g++" 然后source ~/.bashrc 或者,在调用编译器时,使用ccache作为前缀,例如:ccache arm-none-linux-gnueabi-gcc ... 3. 在VSCode的tasks.json中,配置编译任务使用并行编译和ccache。 示例tasks.json(使用make): { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "make", "args": ["-j8"], "group": { "kind": "build", "isDefault": true } } ] } 如果使用cmake,可以在CMakeLists.txt中设置: set(CMAKE_C_COMPILER "ccache") set(CMAKE_CXX_COMPILER "ccache") set(CMAKE_C_COMPILER_ARG1 "arm-none-linux-gnueabi-gcc") set(CMAKE_CXX_COMPILER_ARG1 "arm-none-linux-gnueabi-g++") 或者,在调用cmake时: cmake -DCMAKE_C_COMPILER="ccache" -DCMAKE_C_COMPILER_ARG1="arm-none-linux-gnueabi-gcc" ... 4. 另外,确保项目的编译配置正确,避免每次全量编译。使用构建系统(如make, cmake)的增量编译特性。 5. 如果项目很大,可以考虑使用分布式编译工具(如distcc),但配置相对复杂。 注意:ccache第一次编译时不会加速,但后续重复编译会显著加速。 如果以上方法还不能解决问题,可能需要检查: - 交叉编译器本身的性能(是否在虚拟机中运行?) - 系统资源(CPU、内存)是否充足 - 是否在编译过程中生成了大量中间文件导致磁盘空间不足 因此,总结解决步骤: 1. 安装ccache并配置环境变量。 2. 在VSCode的编译任务中启用并行编译(如make -j)。 3. 确保使用增量编译。 4. 考虑使用预编译头文件(如果项目支持)。 5. 优化项目结构,减少头文件依赖。 根据引用[3]可知,arm-none-linux-gnueabi是针对Linux系统的编译器,因此编译的是Linux应用程序,所以以上方法适用。 最后,如果问题依然存在,可以考虑升级交叉编译器版本(如引用[2]中提到的4.3.3版本可能较旧,可以尝试更新的版本)或者使用更高效的构建系统。 注意:引用[1]和[2]提到了编译器的路径问题,确保在VSCode中正确设置了交叉编译器的路径,避免因路径错误导致使用错误的编译器。 建议用户首先尝试使用ccache和并行编译,这是最常见的优化手段。 </think> 要解决 `arm-none-linux-gnueabi-gcc` 在 VSCode 中编译速度过慢的问题,可结合跨平台编译特性和开发环境优化,参考以下方法--- ### **1. 启用并行编译(关键优化)** 在构建命令中添加 `-j` 参数,充分利用 CPU 多核资源: ```bash # Makefile 项目 make -j$(nproc) # Linux make -j$(sysctl -n hw.ncpu) # macOS # CMake 项目 cmake --build . --parallel 8 # 指定8线程 ``` **原理**:交叉编译的预处理/编译阶段可并行化,此优化通常可提速 3-5 倍[^4]。 --- ### **2. 配置编译器缓存(ccache)** 安装并配置 `ccache` 缓存编译结果: ```bash sudo apt install ccache # Ubuntu/Debian brew install ccache # macOS ``` 在 VSCode 的 `settings.json` 中绑定编译器: ```json { "cmake.configureSettings": { "CMAKE_C_COMPILER": "/usr/lib/ccache/arm-none-linux-gnueabi-gcc", "CMAKE_CXX_COMPILER": "/usr/lib/ccache/arm-none-linux-gnueabi-g++" } } ``` **效果**:重复编译时直接调用缓存,首次编译后速度提升 70% 以上[^4]。 --- ### **3. 优化编译器路径设置** 确保 VSCode 正确识别工具链路径: ```json // .vscode/settings.json { "cmake.generator": "Unix Makefiles", "cmake.buildDirectory": "${workspaceFolder}/build", "cmake.parallelJobs": 8, "cmake.toolchainFile": "arm-toolchain.cmake" } ``` 创建 `arm-toolchain.cmake` 文件指定工具链: ```cmake # arm-toolchain.cmake set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_C_COMPILER /opt/toolchain/bin/arm-none-linux-gnueabi-gcc) set(CMAKE_CXX_COMPILER /opt/toolchain/bin/arm-none-linux-gnueabi-g++) ``` --- ### **4. 减少头文件扫描开销** - **启用预编译头文件(PCH)** 在 CMakeLists.txt 中添加: ```cmake target_precompile_headers(your_target PRIVATE common_header.h) ``` - **剔除冗余头文件** 使用 `include-what-you-use` 工具精简头文件依赖。 --- ### **5. 升级硬件/环境配置** - **SSD 加速**:将源码和编译目录放在 SSD 而非 HDD。 - **虚拟机优化**:若在虚拟机内编译,分配至少 4 核 CPU 和 8GB RAM。 - **远程编译**:通过 VSCode Remote-SSH 连接到高性能 Linux 服务器编译。 --- ### **性能对比参考** | 优化方法 | 预期速度提升 | 适用场景 | |------------------------|--------------|------------------| | 并行编译 (`-j8`) | 300%~500% | 多核 CPU 设备 | | CCache 缓存 | 70%~90% | 增量编译 | | 预编译头文件 (PCH) | 30%~50% | 大型 C++ 项目 | | SSD vs HDD | 200%~400% | I/O 密集型操作 | --- ### 根本原因分析 编译缓慢通常源于: 1. **交叉编译特性**:需处理 ARM/Linux ABI 转换和库链接(如 glibc)[^3] 2. **单线程编译**:未利用多核 CPU 3. **头文件解析**:频繁处理 Linux 标准库头文件 4. **I/O 瓶颈**:HDD 读写速度限制 通过上述组合优化,可显著提升编译效率。若问题仍存在,建议检查工具链版本(如引用[2]中的路径问题)或尝试更新至更新的 GCC 版本(引用[4]中的二次编译优化原理)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

githan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值