1.2.2 GoLLVM 编译探索GO CN GoLLVM编译探索 马春辉 字节跳动程序语言团队工程师 目录 团队与个人 01 GoLLVM 背景 02 GoLLVM现状 03 GoLLVM问题解决 04 阶段性的成果 05 未来与展望 06 第一部分 团队与个人 ’ alt=‘OCR图片’/> 团队与个人 字节跳动程序语言团队 go 编译器/Runtime/GC 优化 基础库、性能分析工具、java、python 基础库、性能分析工具、java、python 马春辉 十多年的编译器领域相关工作经验 先后就职于HP编译器组,IBM jvm组,华为虚拟机实验室,字节跳动程序语言团队 ’ alt=‘OCR图片’/> 第二部分 GoLLVM背景 ’ alt=‘OCR图片’/> GoLLVM背景 · 字节内有大量的go微服务 性能要求 在原生Go SDK上的一些传统编译优化收益超过几十万核 PSM CPU Latency GoLLVM背景 传统编译优化在go compiler上的实现 Inline 策略调整 栈大小调整 Fast path inline Aggressive BCE ’ alt=‘OCR图片’/> GoLLVM背景 ·两条路 继续在原生Go SDK上开发 优化pass少 SSA比较简陋,缺少一些优化的基础设施 探索利用LLVM的优化能力:语言团队与STE-编译器组联合探索0 码力 | 25 页 | 3.99 MB | 1 月前3
Greenplum 编译安装和调试## Greenplum 编译安装和调试 本文先介绍如何从源代码编译安装Greenplum、初始化Greenplum集群。然后介绍SQL在Greenplum中的典型执行路径,最后介绍一些调试技巧。 源代码使用 Greenplum 开源社区最新源代码 6X_STABLE 分支: https://github.com/greenplum-db/gpdb,内核代码基于PostgreSQL 9. com/greenplum-db/gpdb-postgres-merge。 ### 1. 从源代码编译 Greenplum Greenplum 目前官方支持 Redhat/Centos/SuSE/Ubuntu 等 Linux 系统。大量开发人员包括我自己使用 Mac 系统,但是不在官方支持列表中。 ### 1.1 在 Mac 系统上编译 首先需要关闭苹果操作系统的 SIP 特性,否则无法初始化集群。 1. 重启操作系统 python get-pip.py $ sudo pip install psutil lockfile paramiko setuptools epydoc // 需要安装 openssl,否则无法编译 $ brew install openssl && brew link openssl --force $ CPPFLAGS="-I/usr/local/include/0 码力 | 15 页 | 2.07 MB | 2 年前3
C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化## AMD # 从汇编角度看编译器优化 by 彭于斌 (@archibate) 往期录播:https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码:https://github.com/parallel101/course  ## 高性能并行编程与优化 - 课程大纲 • 分为前半段和后半段,前半段主要介绍现代 C++,后半段主要介绍并行编程与优化。 1. 课程安排与开发环境搭建:cmake 与 git 入门 2. 现代 C++ 入门:常用 STL 容器,RAII 内存管理 3. 现代 C++ 进阶:模板元编程与函数式编程 4. 编译器如何自动优化:从汇编角度看 C++ 5. r11, ..., r15 - 其中 r8 到 r15 是 64 位 x86 新增的寄存器,给了汇编程序员更大的空间,降低了编译器处理寄存器翻车(register spill)的压力。 • 因此 64 位比 32 位机器相比,除了内存突破 4GB 限制外,也有一定性能优势。 # 8 位,16 位,32 位,64 位版本 al, ax, eax, rax r15b, r15w, r15d, r150 码力 | 108 页 | 9.47 MB | 2 年前3
Rust并行编译的挑战与突破Rust并行编译的挑战与突破 李原 2022年5月28日 ## 目录 - 相关浅谈 - Rust并行编译的挑战与突破 - 从并行编译到并行程序设计 - Rust社区与并行编译  ## 相关浅谈 ## Rust编译速度之殇 ## ## 编译器设计造成编译速度缓慢  · 单态化 · 借用检查 · 宏展开 · MIR优化 Rust规模编译速度慢于C++  ## Rust编译速度之殇 ## 提升编译效率成为近年社区重点工作  2017-2021,Rust编译速度已提升一倍以上 编译器的方案 AST = Abstract Syntax Tree抽象语法树 SSA = Single Static Assignment单静态赋值 IR = Intermediate Representation中间表示0 码力 | 36 页 | 1.63 MB | 1 月前3
KCL: Rust 在编译器领域的实践与探索## RUST CHINA CONF 2023 第三届中国Rust开发者大会 6.17-6.18 @Shanghai ## KCL: Rust 在编译器领域的实践与探索 张正 蚂蚁集团 ## 😍 01 KusionStack 与 KCL 02 用 Rust 重写 KCL 03 Rust 重写后的收益 04 更多的探索 ## 01 KusionStack 与 KCL ## KusionStack是什么 badd1b5abffd9fb8525138fc88bca0/p9_2.jpg) ## 2 KCL 编译器架构升级 Python 代码翻译 Source Code Python code 栈式虚拟机 Source Code AST Bit code VM Rust 编译器 Source Code AST LLVM IR Native/WASM ## R ## 我们遇到了哪些问题? 8fc88bca0/p11_1.jpg) Pros 简单易上手 生态丰富 研发效率高 Cons 性能问题 无法满足自动化系统需求 稳定性问题 None 空对象,属性不存在等运行时错误 ## 为什么选择 Rust? ### 1. Go, Python, Rust 性能对比 ||CPython|RustPython|GPython|VM(go)|VM(Rust)|VM(Python)|LLVM0 码力 | 25 页 | 3.50 MB | 2 年前3
通过SSA的解释执行窥探Golang编译之一角GCN ## 通过SSA的解释执行窥探Golang编译之一角  丁尔男 武汉航天远景 产品总监 凹语言 联合发起人 PLOC 联合发起人 一切可编译为 WebAssembly 的,终将被编译为 WebAssembly。 2a # WebAssembly 机械工业出版社 China Machine Press ## 目录 Golang 编译流程简介 01 SSA 解释执行 02 基于 SSA 的应用 03 ## Golang 编译流程简介 源代码 抽象语法树 抽象语法树(带语义信息) 静态单赋值 目标代码 ## Golang 编译流程简介 源代码 语法解析,生成抽象语法树(Abstract Syntax Tree,AST),涉及的包: go/token 词法单元定义 go/scanner 词法扫描 抽象语法树(带语义信息) go/ast 抽象语法树定义 go/parser 语法解析 静态单赋值 目标代码 ## Golang 编译流程简介 源代码 抽象语法树 抽象语法树(带语义信息) 静态单赋值 目标代码 $ 1 + 2 * 3 $ *ast.BinaryExpr (+) $ ^{*} $ ast.BasicLit0 码力 | 30 页 | 1.50 MB | 2 年前3
Oracle 和 MySQL 性能优化感悟f7196cc12c191/p1_1.jpg) QCon 全球软件开发大会 INTERNATIONAL SOFTWARE DEVELOPMENT CONFERENCE # 移动APP性能监测实践(iOS篇) 杨凯 # 国 0 码力 | 19 页 | 3.82 MB | 2 年前3
Go性能优化概览-曹春晖## GCN ## 业务性能优化概览  By Xargin 《Go 语言高级编程》合著者 Go contributor  { var m = make([]int, 10240) println(m[0]) } 用户声明的对象,被放在栈上还是堆上,是由编译器的 escape analysis 来决定的 ~/test git:master >>> go build -gcflags=-m"escape.go # command-line-arguments e(typ); m > maxPayload { _, c.outBuf = sliceForAppend(c.outBuf[:0], recordHeaderLen) 怎么样说服官方接受性能优化的 PR ## 内存占用过高-goroutine 数量太多导致内存占用高 这些内存的构成部分: 1. Goroutine 栈占用的内存(难优化,一条 tcp 连接至少对应一个 goroutine)0 码力 | 40 页 | 8.69 MB | 2 年前3
APISEVEN 和Kong EE 的性能评测# APISEVEN 和 Kong EE 的性能评测 -- GigaOm 高性能API管理测试 产品评估:API7和Kong企业版  1 - 摘要3 API76 图1. API7技术架构7 Kong 企业版7 3-GigaOm API负载测试设置9 开发,且能降低计算成本的开销。 更重要的是,许多组织也依赖API和微服务来实现高性能和可用性。在本文中,我们将“高性能”定义为每秒负载超过1000个交易且在整个API环境中最大延迟小于30毫秒。对公司而言,对性能的需求和对管理的需求一样,因为公司依靠API交易速率来跟上业务发展速度。 API管理解决方案不能成为性能瓶颈。许多公司都在寻找跨多个API端点的负载均衡和高交易量吞吐的解决方案。如果业务 每秒有1000个交易,一个月内就会有30亿次API调用。拥有大流量的公司通常每月API调用次数超过100亿次。因此,在选择API管理解决方案时,性能是一个关键因素。 在本文中,我们展示了使用2个全生命周期API管理平台完成的性能测试结果:API7 和 Kong 企业版 (Kong EE)。 在我们的单节点设置中,API7所有的压力测试结果都优于Kong EE。在每秒10,000个请求的情况下,990 码力 | 14 页 | 1.11 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100
相关搜索词
GoLLVM编译优化Inline策略GC精确式栈扫描ABI转换Greenplum编译安装初始化集群SQL执行流程调试技巧C++高性性能高性能并行编程优化课件04Rust并行编译共享数据结构编译器性能社区工作组并行程序设计Go编译器编译器工作流程ARM64硬件除法器词法分析KCLRustKusionStack编译器LLVM IR静态单赋值ssa.Callssa.BasicBlockssa.Functionssa.Store移动APP性能监测NSURLProtocolMethod swizzlingIsa swizzlingiOSCPU占用内存占用GoroutineGC优化性能调优内存分配序列化调用栈压测指标API管理性能测试延迟吞吐量微服务













