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

相关推荐
aramae6 小时前
模拟实现strcmp()(C语言)
c语言·开发语言·后端
+VX:Fegn08956 小时前
计算机毕业设计|基于springboot + vue蛋糕店管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·课程设计
泡海椒7 小时前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
Beyond_System|系统之外8 小时前
【学编程】Python基础编程题100道(21-60)
开发语言·python·算法
景熙55238 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
哈__8 小时前
KES-Operator重塑Kubernetes环境下的KES数据库集群管理
数据库·kubernetes·operator·kes
IvorySQL10 小时前
IvorySQL 5.6 发布:PG 18.6 内核升级,沙盒即开即用
数据库·人工智能·postgresql
CNSSIRD数据库10 小时前
中国企业环境信用数据库2003-2026
大数据·数据库·数据分析·论文笔记
Bruce_Liuxiaowei11 小时前
Python 实例赋值遮蔽类属性:一个从不报错的静默陷阱
开发语言·python·语法糖