博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于Clang的缓存型C++编译器Zapcc开源
阅读量:6415 次
发布时间:2019-06-23

本文共 817 字,大约阅读时间需要 2 分钟。

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

\\

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

\\

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

\\

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

\\

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

\\

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

\\

查看英文原文:

转载地址:http://hucra.baihongyu.com/

你可能感兴趣的文章
重构之美-跨越Web标准,触碰语义网[开门见山:Microformat]
查看>>
git入门与实践【转】
查看>>
WPF 虚拟键盘
查看>>
储存卡无法打开专家教您怎么数据恢复
查看>>
彼得原理
查看>>
如何利用【百度地图API】,制作房产酒店地图?(下)——结合自己的数据库...
查看>>
[20171113]修改表结构删除列相关问题3.txt
查看>>
特征选择
查看>>
在Winform程序中设置管理员权限及为用户组添加写入权限
查看>>
RTMP直播到FMS中的AAC音频直播
查看>>
多能互补提速 加快我国能源转型和现代能源体系建设
查看>>
《JavaScript设计模式》——2.5 多种调用方式——多态
查看>>
Redis开发运维实践高可用和集群架构与实践(二)
查看>>
程序员的常见“谎话”:对,这是一个已知 Bug
查看>>
如何侦查SQL执行状态
查看>>
CentOS 7 命令行如何连接无线网络
查看>>
Ubuntu 12.04上享用新版本Linux的功能
查看>>
logstash + grok 正则语法
查看>>
Zimbra开源版(v8.6)安装说明
查看>>
Android性能优化之TraceView和Lint使用详解
查看>>