AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

基于 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:341862
用户头像

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

关注

评论

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

一文了解云真机的使用

优测云服务平台

手机 测试 兼容性测试 移动设备识别

淘宝商品评论API返回值中的评分与星级解读

技术冰糖葫芦

API Explorer API 编排 api 货币化 API 文档

为什么我不建议用Excel做进销存系统?

源字节1号

小程序 开源 前端 后端

GPU云服务器:计算型与渲染型的最佳应用场景

Ogcloud

gpu 云服务器 GPU云服务器 云服务器租用

数业智能心大陆用AI解锁心灵健康

心大陆多智能体

智能体 AI大模型 心理健康 数字心理

制造业几大系统(MES/WMS/QMS/ERP)的集成

万界星空科技

ERP mes WMS仓库管理 万界星空科技 QMS

江苏徐州正规等保测评机构有吗?在哪里?

行云管家

等保 等保测评 徐州

畜牧业也需要堡垒机吗?为什么?

行云管家

网络安全 等保 堡垒机 畜牧业

创新引领高质量发展,中微公司庆祝科创板上市五周年

新消费日报

2024青岛软博会,招展工作顺利进行,诸多知名软件企业踊跃报名

AIOTE智博会

MES系统助力制造业数字化转型

万界星空科技

数字化 数字化运维 生产管理系统 mes 万界星空科技

PPT插入的图片去哪找?3款自带图库的在线PPT软件推荐!

彭宏豪95

效率工具 职场 PPT 办公软件 AI生成PPT

红圈CRM携手金蝶ERP,彻底告别数据孤岛,效率飙升的数字化转型之旅!

聚道云软件连接器

案例分享

实力强劲!云起无垠上榜《数字安全护航技术能力全景图》

云起无垠

有人泼冷水:为什么 AI 基础设施创业如此艰难?

小猿姐

创业 AI AI 基础设施

IPIDEA分享:匿名代理的定义及其工作原理

IPIDEA全球HTTP

代理IP 匿名代理

开启SRE培训之旅:美高梅(MGM) 启动服务稳定性建设

雅菲奥朗

SRE SRE培训 SRE考试 SRE认证 SRE Foundation

凤凰项目(Phoenix Project)精要 - 概念

Anliven

读书笔记 团队管理 DevOps 运维 团队效能

神州鲲泰“电网变电站边缘计算解决方案

神州数码

入选2024 分布式算力十佳“星耀”案例,天翼云为算力实践提供样板参考

极客天地

Web前端浅谈ArkTS组件开发

OpenTiny社区

typescript 前端 OpenTiny

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