DeepSeek总结的DuckDB在 CI 中为 release 和 glibc CLI 构建启用 LTO - #24225

来源:https://github.com/duckdb/duckdb/pull/24225

在 CI 中为 release 和 glibc CLI 构建启用 LTO - #24225

#24225

开启

smvv

希望将 8 个提交合并到

duckdb:main

从

smvv:lto-thin

+30

-6

变更行数:30 处添加和 6 处删除

对话 0 (0)

提交 8 (8)

检查 1 (1)

文件变更 4 (4)

对话

@smvv

smvv 评论于

2 小时前

·

成员

问题:https://github.com/duckdblabs/duckdb-internal/issues/4354。

先前尝试:https://github.com/duckdb/duckdb/pull/20221/changes。

GCC 13(linux-release)

运行时性能回退

  • 数据摄取(Ingestion)性能回退。
  • CSV 性能回退:几何平均:0.559s -> 0.918s(+64.1%)。

扩展二进制文件大小

名称 基础大小 LTO 大小 缩减比例
tpcds 25.64 MiB 23.07 MiB 10.02%
fts 14.61 MiB 13.50 MiB 7.60%
inet 13.72 MiB 12.54 MiB 8.56%
tpch 24.42 MiB 21.84 MiB 10.56%
icu 23.78 MiB 22.49 MiB 5.44%
autocomplete 13.47 MiB 12.19 MiB 9.54%
json 40.92 MiB 35.33 MiB 13.66%
parquet 21.22 MiB 19.36 MiB 8.75%
demo_capi 0.02 MiB 0.02 MiB 0.34%
test_utils 39.78 MiB 34.76 MiB 12.62%
core_functions 32.20 MiB 29.71 MiB 7.73%
httpfs 23.88 MiB 22.02 MiB 7.77%

每个扩展的平均二进制文件大小减少了 8.55%。

待办事项

  • 仅在主 CI 构建中启用 LTO。
  • 将 LTO 标志添加到 linux-base。
  • 弄清楚如果主 CI 使用 LTO,如何预热 PR CI 缓存。

@smvv

在 CI 中为 release 和 glibc CLI 构建启用 Thin LTO

66cfffa

@smvv smvv 于 2 小时前添加了 Do Not Review 标签

@github-actions github-actions 机器人于 2 小时前添加了 Member 标签

smvv 于 1 小时前添加了 2 个提交

@smvv

增加 GCC 的并行链接任务数

1f79526

@smvv

使用 6 个并行 LTO 任务

0728dcd

@smvv smvv 于 1 小时前将标题从"在 CI 中为 release 和 glibc CLI 构建启用 Thin LTO"更改为"在 CI 中为 release 和 glibc CLI 构建启用 LTO"

smvv 于 1 小时前添加了 3 个提交

@smvv

使用 8 个并行 LTO 任务

df5b1b2

@smvv

修复 release CLI 链接错误(缺少符号)

56a9bd6

@smvv

尝试使用 clang 20 进行带有 LTO 的 linux-release 构建

c9645b7

@smvv

smvv 于 24 分钟前将 lto-thin 分支从 259bc2f 强制推送到 c9645b7

smvv 于 2 分钟前添加了 2 个提交

@smvv

支持 clang LTO Thin 并行任务

84fc08e

@smvv

如果已安装,为 linux release 构建隐式启用 mold

7ece449

相关推荐
ly76896 分钟前
从 OpenAPI 到多语言 SDK 生成:Java 服务端契约漂移与生成器版本治理
java·开发语言·openapi·java 21·版本兼容·契约漂移·sdk 生成
lqbzlll20 分钟前
CVE-2026-91403 排查指南:Java JSSE 信任链漏洞的根因、影响范围和修复步骤
java·开发语言·信任链
CarIise23 分钟前
AOP 概念的引入
java·开发语言
凉茶钱25 分钟前
多态:从虚函数语法到虚表寻址,一次讲透动态绑定
开发语言·c++·多态
Decay__28 分钟前
01_MySQL 体系架构全解 —— 连接层、SQL 层、存储引擎层与 InnoDB 深入
运维·数据库·sql·mysql·架构
Hello.Reader34 分钟前
Three.js / Cesium 卡顿怎么办?把三维渲染搬到 GPU 服务器
服务器·开发语言·javascript
Linux_cy36 分钟前
nginx 502 排查手册:九种原因分类、定位命令与检查顺序
linux·运维·服务器·网络·数据库·nginx·ssh
在多学一点38 分钟前
MySQL_DDL的基本命令
数据库·mysql·adb
Solange__42 分钟前
AI世界模型、3D场景生成和游戏引擎怎么选?按5类任务比较交互、物理与导出
开发语言·人工智能·游戏·平面·3d·自然语言处理·游戏引擎
椒颜皮皮虾྅1 小时前
模型部署不再卡在环境上:DeploySharp 四大推理引擎与 Windows/Linux 离线交付实战
linux·运维·开发语言·人工智能·windows·计算机视觉·cuda