# 性能优化与编译参数

URL: https://caijiao.org/gentoo/performance
Source: docs/gentoo/performance.md
Description: 本章介绍 Gentoo 系统性能优化方法，包括编译参数调整、USE 标志优化和系统级调优技巧。

在掌握内核升级流程后，下一步是 **对 Gentoo 系统进行性能优化**，通过合理编译参数和系统设置提升整体效率。

## 一、优化 CFLAGS 与 CXXFLAGS

1. 编辑 `/etc/portage/make.conf`，设置编译优化参数：

```bash
CFLAGS="-O2 -march=native -pipe"
CXXFLAGS="${CFLAGS}"
````

* `-O2`：平衡优化和编译时间
* `-march=native`：针对当前 CPU 架构优化
* `-pipe`：使用管道代替临时文件，提升速度

> ⚡ 高级用户可使用 `-O3` 或其他特定 CPU 指令集，但需测试稳定性。

## 二、USE 标志优化

* 精简全局 USE 标志，避免编译不必要功能：

```bash
USE="X gtk qt5 wifi bindist"
```

* 包级 USE 标志针对特定软件包进行功能裁剪
* 重新编译受 USE 标志影响的软件包：

```bash
emerge --update --deep --newuse @world
```

## 三、并行编译与 makeopts

1. 设置 `/etc/portage/make.conf` 中的 `MAKEOPTS`：

```bash
MAKEOPTS="-j$(nproc)"
```

* `$(nproc)`：自动使用 CPU 核心数量并行编译
* 可根据系统负载调整，避免编译时卡顿

## 四、编译缓存 ccache

* 启用 ccache 提高重复编译效率（参考前章）
* 配置 `CCACHE_DIR` 和 `CCACHE_SIZE` 优化缓存管理

```bash
FEATURES="ccache"
CCACHE_DIR="/var/cache/ccache"
CCACHE_SIZE="10G"
```

## 五、系统级性能优化

1. 调整 I/O 调度器：

```bash
echo noop > /sys/block/sda/queue/scheduler
```

2. 调整 swappiness：

```bash
sysctl vm.swappiness=10
```

3. 使用轻量级桌面环境（如 XFCE）减少系统资源占用
4. 禁用不必要的服务和后台进程：

```bash
rc-update show
rc-update del <service>
```

## 六、建议操作

* 先保证系统稳定，再尝试高等级编译优化
* 并行编译和 ccache 可显著缩短源码编译时间
* 定期评估 USE 标志和系统服务，保持系统轻量化和高效
