写点什么

基于 Clang 的缓存型 C++ 编译器 Zapcc 开源

  • 2018-06-26
  • 本文字数:796 字

    阅读完需:约 3 分钟

Zapcc 是一个缓存型C++ 编译器,基于Clang/LLVM 的一个分支创建,据称重编译的速度快50 倍,完整构建的速度快2 到5 倍。由Creemple 开发,最初在2015 年底发布,Zapcc 现在开源了。

Zapcc 编译速度提升主要是因为使用了一个编译服务器(zapccs),该服务器驻留在内存中,从客户端接收编译命令。Zapccs 仅解析 C++ 头文件一次,并把所有模板实例和生成的代码都保留在内存中。在这一方面,可以把 Zapcc 视为是以更极端的方式使用了预编译的头文件,但是,它可以获得的信息比预编译头文件多得多,而且又不需要让预编译头文件发挥作用的所有设置。

在处理十分复杂的C++ 头文件,尤其是那些使用了模板的头文件时,与Clang 相比,Zapcc 特别快。因此,也就不用奇怪,在构建 boost::math时 Zapcc 的速度是 Clang 的 40 倍,在WebKit 完整构建时快4 倍,在Clang 完整构建时快2 倍。类似地,在增量重编译时,Zapcc 比Clang 快50 倍。另一方面,当源文件比头文件复杂很多时,Zapcc 就提供不了多少好处了,纯C 项目对于Zapcc 而言是最坏的情况,根本就不能提升速度。实际上,Zapcc 禁止缓存C 文件。

据Creemple 介绍,由Zapcc 生成的代码其运行时性能和由Clang 生成的代码一样。

zapccs使用的内存数量是决定整体性能的一个重要因素。Zapcc 允许开发人员设置内存限值,当达到限值时,zapccs会使用一个空的缓存自动重启。如果找不到可用的服务器实例,那么Zapcc会设法启动一个新的服务器实例,开发人员可以使用-j标识控制并发服务器最大数量。根据项目的复杂度,服务器较少而内存限值较高时,Zapcc 可能运行得更快。

据项目主要开发者 Yaron Keren 介绍, Zapcc 是经过重大修改的 Clang ,修改超过 20 万行。我们不认为它有一天会进入 CLang 基线。Zapcc 意在取代 Clang 和 gcc,其目标是与所有构建系统集成。它获得了 Linux x64 的完全支持。

查看英文原文: Caching Clang-Based C++ Compiler Zapcc Open-Sourced

2018-06-26 05:341944
用户头像

发布了 1008 篇内容, 共 430.9 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

当AI邂逅日志海:从骨感现实到无限可能

权说安全

AI 网络安全

AI 智能体的开发技术

北京木奇移动技术有限公司

AI开发 AI智能体 软件外包公司

是时候解决告警事件数据孤岛问题了

巴辉特

告警 告警事件 告警事件孤岛

公链开发的核心难题与高效构建指南

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

携程网获取景点列表API接口(携程API系列)

tbapi

携程网 携程网API接口 携程网数据采集

HPE发布8款新服务器,英特尔至强6助力能效提升65%,每瓦性能增长41%!

E科讯

昆仑万维开源中国首个面向AI短剧创作的视频生成模型SkyReels-V1,重塑AI短剧行业格局

新消费日报

KubeEdge 1.20.0发布! 6大新特性提升边缘管理能力

华为云开发者联盟

容器 云原生 k8s 边缘计算 kubeedge

YashanDB金融特性数据库根原创实验室成立

极客天地

发挥数据在财务规划转型过程中的关键作用

智达方通

企业管理 全面预算管理 财务预测

携程网地方美食品列表数据接口(携程API系列)

tbapi

携程API 携程网 携程美食列表接口

AI 智能体(AI Agent)的开发框架

北京木奇移动技术有限公司

AI开发 AI智能体 软件外包公司

淘宝天猫数据API接口秘籍:快速获取商品详情与关键词搜索商品

代码忍者

淘宝API接口

Svelte 最新中文文档教程(12)—— 样式相关 style 与 class

冴羽

vue.js 前端 React Svelte SvelteKit

区块链虚拟币资产去中心化私钥钱包开发

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

深度揭秘:我们是如何设计一个每天同步万亿数据的神器 - SeaTunnel架构解密

Apache SeaTunnel

MobPush 智能推送系统的用户行为分析:驱动精准运营的核心引擎

MobTech袤博科技

百度网盘防雪崩架构实践

百度Geek说

百度 后端 架构-

行云管家加入信创生态联盟“金兰组织”, 携手共建信创产业新生态

行云管家

信创 信创国产化

AI智能体应用的开发环境

北京木奇移动技术有限公司

AI开发 AI智能体 软件外包公司

告别传统仿真!深度求索大模型正在重新定义工业设计未来

思茂信息

AI 仿真 DeepSeek

解锁DeepSeek深度应用,天翼云GPU云主机强势破局!

天翼云开发者社区

云计算 AI应用 gpu 算力 DeepSeek

基于Clang的缓存型C++编译器Zapcc开源_开源_Sergio De Simone_InfoQ精选文章