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

相关推荐
我的xiaodoujiao17 分钟前
Django 基础知识详细图文教程 4-Django 视图定义与使用
开发语言·数据库·后端·测试工具·django·sqlite
whitelbwwww19 分钟前
c++运行RKNN
开发语言·c++
2601_9620702326 分钟前
差异基因富集分析(R语言——GO&KEGG&GSEA)
开发语言·golang·r语言
veminhe26 分钟前
`sqlalchemy` 基本使用
数据库
布莱克60528 分钟前
栈(Stack)详解:定义、作用、应用场景及与队列的区别(附 C/C++ 代码)
c语言·开发语言·c++·
zmzb010329 分钟前
C++课后习题训练记录Day203
开发语言·c++
2601_9620746836 分钟前
大数据-263 实时数仓 - Canal 工作原理 工作流程 MySQL Binglog基本介绍
大数据·数据库·mysql
2601_9621819640 分钟前
数据库之PostgreSQL详解
数据库·postgresql
天天喝旺仔43 分钟前
Docker 镜像瘦身实战:多阶段构建把体积缩小 90%
运维·后端·ci/cd·docker·云原生·容器·性能优化