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

相关推荐
HUIBUR科技2 分钟前
AI中枢:打破数据孤岛与流程孤岛双重困境
开发语言·ai
AOI小白新手上路11 分钟前
视频去雨·论文蒸馏笔记:从物理先验到状态空间模型
数据库·笔记·音视频
鱼宵14 分钟前
LangChain4j 结构化输出:让模型吐出 Java 对象,JSON 不再手写解析
java·开发语言·json·langchain4j
小码哥06820 分钟前
搭建短剧系统|海外短剧:从需求到上线的指南
网络·数据库·音视频·短剧小程序·短剧系统·短剧开发·短剧后台
w2sfot27 分钟前
【JS加密在线】jsjiami.online(让JavaScript 更安全!)
开发语言·javascript·安全
HSunR28 分钟前
ruoyi 若依 自定义注解 参数校验
java·前端·数据库
Wang's Blog1 小时前
Java 项目部署之 Docker工具快速入门: Docker 是什么以及它如何解决部署环境问题
java·开发语言·docker
老木避暑研究所1 小时前
从原始数据到洞察:一次完整的避暑房环境数据采集、清洗与可视化分析
java·开发语言
程序喵大人1 小时前
【C++入门】编译链接模型 - 05 ODR 为什么会让重复定义变成工程炸点
开发语言·c++·编译链接·odr