带你读《2022龙蜥社区全景白皮书》——5.4.1 C++编译器和基础库

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
性能测试 PTS,5000VUM额度
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 带你读《2022龙蜥社区全景白皮书》——5.4.1 C++编译器和基础库

5.4 编程语言


5.4.1 C++编译器和基础库


背景概述


Alibaba Cloud Compiler(ACC)编译器,相比GCC,或其他Clang/LLVM版本在编译、构建速度上有很大的提升;利用ACC ThinLTO、AutoFDO和Bolt等技术可以在不同程度上优化程序性能。ACC在支持不同CPU架构(X86、AArch64)基础上,进一步针对倚天710芯片进行优化,取得额外性能提升。


我们基于ACC编译器开发了一套贴近C++开发者、非常易用和高性能的C++基础库,包括:协程、modules、编译期反射、序列化、rpc、http、orm等常用的组件。


ACC与C++基础库,为龙蜥社区开发者提供了C++ 开发的一站式解决方案,快速构建高性能的C++应用:

通过编译器切换升级到ACC,可以在不用大幅修改代码的情况下获得性能提升和编译速度大幅提升;

使用C++ 基础库的协程子库,将一些现存业务的同步任务造成协程异步任务可以获得性能的大幅提升;

使用C++ 基础库的协程子库将异步回调逻辑变成同步逻辑,让异步代码变得简单和易维护;

使用C++ 基础库的rpc、http、序列化和ORM等子库可以快速构建高性能C++应用。



技术方案


ACC ThinLTO性能优化

在一些业务中启用ThinLTO优化后,qps和cpu workload提升效果较好。


image.png


ACC Bolt性能优化

在某存储平台中启用Bolt性能优化后,4K顺序写场景IOPS可提升8%,延时降低7.4%,优化效果明显。


async_simple协程库

某计算平台和搜索平台将同步改造成协程异步之,qps获得了数量级的提升。将异步回调改造成协程异步之后性能获得了8%左右的提升。


struct_pack序列化库

用户只需要一行代码就可以用struct_pack完成序列化和反序列化。相比于protobuf等开源库需要定义proto文件和生成代码的方式,大大简化了使用序列化库的使用方式。同时,相比protobuf性能提升7-20倍。


image.png

coro_rpc库

coro_rpc库是基于无栈协程和编译期反射的高性能易用的rpc库,几行代码就可以提供一个rpc服务,让异步IO变得简单,性能比brpc高2-4倍。


image.png


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
3月前
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
90 6
|
3月前
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
127 10
|
5天前
|
XML 网络协议 API
超级好用的C++实用库之服务包装类
通过本文对Boost.Asio、gRPC和Poco三个超级好用的C++服务包装类库的详细介绍,开发者可以根据自己的需求选择合适的库来简化开发工作,提高代码的效率和可维护性。每个库都有其独特的优势和适用场景,合理使用这些库可以极大地提升C++开发的生产力。
27 11
|
1月前
|
算法 网络协议 数据挖掘
C++是一种功能强大的编程语言,
C++是一种功能强大的编程语言,
56 14
|
3月前
|
存储 程序员 C++
C++常用基础知识—STL库(2)
C++常用基础知识—STL库(2)
90 5
|
3月前
|
存储 自然语言处理 程序员
C++常用基础知识—STL库(1)
C++常用基础知识—STL库(1)
84 1
|
4月前
|
编译器 API C语言
超级好用的C++实用库之跨平台实用方法
超级好用的C++实用库之跨平台实用方法
48 6
|
4月前
|
安全 C++
超级好用的C++实用库之环形内存池
超级好用的C++实用库之环形内存池
82 5
|
4月前
|
缓存 网络协议 Linux
超级好用的C++实用库之套接字
超级好用的C++实用库之套接字
41 1
|
4月前
|
存储 算法 安全
超级好用的C++实用库之sha256算法
超级好用的C++实用库之sha256算法
168 1
下一篇
开通oss服务