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

简介: 带你读《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


相关文章
|
2月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
646 2
|
2月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
152 11
|
2月前
|
缓存 算法 程序员
C++STL底层原理:探秘标准模板库的内部机制
🌟蒋星熠Jaxonic带你深入STL底层:从容器内存管理到红黑树、哈希表,剖析迭代器、算法与分配器核心机制,揭秘C++标准库的高效设计哲学与性能优化实践。
C++STL底层原理:探秘标准模板库的内部机制
|
2月前
|
IDE 编译器 开发工具
msvcp100.dll,msvcp120.dll,msvcp140.dll,Microsoft Visual C++ 2015 Redistributable,Visual C++ 运行库安装
MSVC是Windows下C/C++开发核心工具,集成编译器、链接器与调试器,配合Visual Studio使用。其运行时库(如msvcp140.dll)为程序提供基础函数支持,常因缺失导致软件无法运行。通过安装对应版本的Microsoft Visual C++ Redistributable可解决此类问题,广泛应用于桌面软件、游戏及系统级开发。
365 2
|
3月前
|
并行计算 C++ Windows
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
326 6
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
285 10
|
11月前
|
JSON C++ 数据格式
C++20 高性能基础库--兰亭集库助力开发者构建高性能应用
这次分享的主题是《高性能基础库--兰亭集库助力开发者构建高性能应用》的实践经验。主要分为三个部分: 1. 业务背景 2. 雅兰亭库架构 3. 业务优化
367 9
|
11月前
|
XML 网络协议 API
超级好用的C++实用库之服务包装类
通过本文对Boost.Asio、gRPC和Poco三个超级好用的C++服务包装类库的详细介绍,开发者可以根据自己的需求选择合适的库来简化开发工作,提高代码的效率和可维护性。每个库都有其独特的优势和适用场景,合理使用这些库可以极大地提升C++开发的生产力。
267 11